PlayaMLOperator.hpp
00001
00002
00003
00004
00005 #ifndef PLAYA_MLOPERATOR_HPP
00006 #define PLAYA_MLOPERATOR_HPP
00007
00008
00009 #include "PlayaEpetraMatrix.hpp"
00010 #include "PlayaLinearOpWithSpacesDecl.hpp"
00011
00012 #include "ml_MultiLevelPreconditioner.h"
00013 #include "EpetraPlayaOperator.hpp"
00014
00015 namespace Playa
00016 {
00020 class MLOperator :
00021 public LinearOpWithSpaces<double>
00022 {
00023 public:
00025 MLOperator(
00026 const LinearOperator<double>& op,
00027 const ParameterList& mlParams);
00028
00039 virtual void apply(
00040 Teuchos::ETransp applyType,
00041 const Vector<double>& in,
00042 Vector<double> out) const ;
00043
00044
00045 private:
00046 RCP<ML_Epetra::MultiLevelPreconditioner> mlPrec_;
00047
00048 };
00049 }
00050
00051 #endif