1 #ifndef __Teko_MLPrecondtionerFactory_hpp__ 2 #define __Teko_MLPrecondtionerFactory_hpp__ 4 #include "Teko_BlockPreconditionerFactory.hpp" 6 #include "ml_include.h" 7 #include "ml_operator.h" 10 class MultiLevelPreconditioner;
21 Teuchos::RCP<ML_Epetra::MultiLevelPreconditioner>
22 constructMLPreconditioner(
const Teuchos::ParameterList & mainList,
23 const std::vector<Teuchos::RCP<const Teuchos::ParameterList> > & coarseningParams);
29 void setMLComm(ML_Comm * comm);
32 void setMLOperator(ML_Operator * op);
35 void setIsFilled(
bool value);
38 void setAggregationMatrices(
const std::vector<Epetra_RowMatrix *> & diags);
44 bool isFilled()
const;
47 static void cleanup_ML_Comm(ML_Comm * mlComm);
48 static void cleanup_ML_Operator(ML_Operator * mlComm);
51 Teuchos::RCP<ML_Comm> mlComm_;
52 Teuchos::RCP<ML_Operator> mlOp_;
54 std::vector<Epetra_RowMatrix*> diagonalOps_;
55 Teuchos::RCP<ML_Epetra::MultiLevelPreconditioner> mlPreconditioner_;
73 virtual Teuchos::RCP<PreconditionerState> buildPreconditionerState()
const;
78 void initializeFromParameterList(
const Teuchos::ParameterList & settings);
90 std::vector<Teuchos::RCP<const Teuchos::ParameterList> > coarseningParams_;
91 Teuchos::ParameterList mainParams_;
Class that constructs and returns an ML preconditioner object that is capable of doing block smoothin...
Abstract class which block preconditioner factories in Teko should be based on.
Contains operator internals need for ML.
An implementation of a state object for block preconditioners.