30 #ifndef __preconditionerML_H
31 #define __preconditionerML_H 1
33 #include <feel/feelconfig.h>
37 #if defined( FEELPP_HAS_TRILINOS_ML )
38 #undef PACKAGE_BUGREPORT
41 #undef PACKAGE_TARNAME
42 #undef PACKAGE_VERSION
44 #include <ml_config.h>
45 #include <ml_RowMatrix.h>
46 #include <ml_MultiLevelPreconditioner.h>
47 #undef PACKAGE_BUGREPORT
50 #undef PACKAGE_TARNAME
51 #undef PACKAGE_VERSION
54 class PreconditionerML
58 typedef ML_Epetra::MultiLevelPreconditioner prec_type;
59 typedef boost::shared_ptr<prec_type> prec_ptrtype;
61 typedef MatrixSparse<double> sparse_matrix_type;
62 typedef boost::shared_ptr<sparse_matrix_type> sparse_matrix_ptrtype;
64 typedef MatrixEpetra epetra_sparse_matrix_type;
65 typedef boost::shared_ptr<epetra_sparse_matrix_type> epetra_sparse_matrix_ptrtype;
67 typedef Teuchos::ParameterList list_type;
69 PreconditionerML( list_type options );
71 PreconditionerML( PreconditionerML
const& tc );
73 int buildPreconditioner( sparse_matrix_ptrtype& A );
75 prec_ptrtype getPrec();
81 Teuchos::ParameterList M_List;
83 std::string M_precType;