20 #ifndef LIBMESH_TRILINOS_PRECONDITIONER_H 21 #define LIBMESH_TRILINOS_PRECONDITIONER_H 25 #ifdef LIBMESH_TRILINOS_HAVE_EPETRA 37 #include "Epetra_Operator.h" 38 #include "Epetra_FECrsMatrix.h" 39 #include "Teuchos_ParameterList.hpp" 42 #ifdef LIBMESH_FORWARD_DECLARE_ENUMS 58 template <
typename T>
class SparseMatrix;
59 template <
typename T>
class NumericVector;
60 template <
typename T>
class ShellMatrix;
73 public Epetra_Operator
89 virtual void clear ()
override {}
91 virtual void init ()
override;
96 void set_params(Teuchos::ParameterList & list);
134 virtual int Apply(
const Epetra_MultiVector & X, Epetra_MultiVector & Y)
const override;
135 virtual int ApplyInverse(
const Epetra_MultiVector & r, Epetra_MultiVector & z)
const override;
136 virtual double NormInf()
const override;
137 virtual const char *
Label()
const override;
140 virtual const Epetra_Comm &
Comm()
const override;
149 template <
typename T>
160 template <
typename T>
169 #endif // LIBMESH_TRILINOS_HAVE_EPETRA 170 #endif // LIBMESH_TRILINOS_PRECONDITIONER_H void set_params(Teuchos::ParameterList &list)
virtual void init() override
virtual ~TrilinosPreconditioner()
TrilinosPreconditioner(const libMesh::Parallel::Communicator &comm)
Teuchos::ParameterList _param_list
virtual bool HasNormInf() const override
Epetra_FECrsMatrix * mat()
virtual void apply(const NumericVector< T > &x, NumericVector< T > &y) override
Provides a uniform interface to vector storage schemes for different linear algebra libraries...
const Parallel::Communicator & comm() const
void set_preconditioner_type(const PreconditionerType &preconditioner_type)
virtual void clear() override
Epetra_FECrsMatrix * _mat
virtual const Epetra_Map & OperatorDomainMap() const override
virtual bool UseTranspose() const override
virtual double NormInf() const override
virtual int SetUseTranspose(bool UseTranspose) override
virtual const char * Label() const override
virtual const Epetra_Map & OperatorRangeMap() const override
virtual int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const override
virtual const Epetra_Comm & Comm() const override
virtual int ApplyInverse(const Epetra_MultiVector &r, Epetra_MultiVector &z) const override