29 #ifndef __epetra_linear_solver_h__
30 #define __epetra_linear_solver_h__
33 #include <feel/feelcore/feel.hpp>
36 #include <feel/feelalg/solverlinear.hpp>
44 #include <Ifpack_CrsIct.h>
47 #include <ml_config.h>
48 #include <ml_RowMatrix.h>
49 #include <ml_MultiLevelPreconditioner.h>
50 #include <Teuchos_ParameterList.hpp>
57 boost::shared_ptr<ML_Epetra::MultiLevelPreconditioner>
58 createMLPreconditioner( Epetra_RowMatrix
const& mat, po::variables_map
const& vm )
62 Teuchos::ParameterList MList;
64 ML_Epetra::SetDefaults(
"SA",MList );
65 MList.set(
"max levels", vm[
"max-levels"].as<int>() );
66 MList.set(
"increasing or decreasing",vm[
"increasing-or-decreasing"].as<std::string>() );
67 MList.set(
"aggregation: type", vm[
"aggregation-type"].as<std::string>() );
68 MList.set(
"coarse: type",vm[
"coarse-type"].as<std::string>() );
70 return boost::shared_ptr<ML_Epetra::MultiLevelPreconditioner>(
new ML_Epetra::MultiLevelPreconditioner( mat,
79 #endif // #ifdef __epetra_linear_solver_h__