14 #ifndef ROW_MATRIX_PRECONDITIONER_HPP_ 15 #define ROW_MATRIX_PRECONDITIONER_HPP_ 17 #include <Epetra_CrsMatrix.h> 18 #include <Teuchos_ParameterList.hpp> 20 #include <lifev/core/linear_algebra/LinearOperatorAlgebra.hpp> 21 #include <lifev/core/util/FactorySingleton.hpp> 22 #include <lifev/core/util/Factory.hpp> 68 ASSERT_PRE(rowMatrix.get() != 0,
"RowMatrixPreconditioner::SetRowMatrix(): rowMatrix can not be a null Pointer");
81 return M_prec->SetUseTranspose(UseTranspose);
92 ASSERT_PRE(M_rowMatrix.get()!= 0,
"RowMatrixPreconditioner::Compute(): You need to SetRowMatrix first \n");
100 return M_prec->Apply(X,Y);
105 return M_prec->ApplyInverse(X,Y);
110 return M_prec->NormInf();
120 return M_prec->Label();
126 return M_prec->UseTranspose();
132 return M_prec->HasNormInf();
138 return M_prec->Comm();
144 return M_prec->OperatorDomainMap();
150 return M_prec->OperatorRangeMap();
virtual bool UseTranspose() const
Returns the current UseTranspose setting.
FactorySingleton< Factory< RowMatrixPreconditioner, std::string > > RowMatrixPreconditionerFactory
RowMatrixPreconditionerFactory should be used for the creation of concrete instances of RowMatrixPrec...
void SetParameterList(const pList_Type pList)
Set the list of paramenters.
virtual ~RowMatrixPreconditioner()
Destructor.
Abstract class which defines the interface of a Linear Operator.
virtual int SetUseTranspose(bool UseTranspose)
Transposition.
RowMatrixPreconditioner()
Empty constructor.
void updateInverseJacobian(const UInt &iQuadPt)
virtual double NormInf() const
Returns the infinity norm of the global matrix.
virtual const comm_Type & Comm() const
Returns a pointer to the Epetra_Comm communicator associated with this operator.
void SetRowMatrix(const rowMatrixPtr_Type &rowMatrix)
Set the row matrix.
virtual int myCompute()=0
Abstract method myCompute implemented by the derived class.
virtual int Apply(const vector_Type &X, vector_Type &Y) const
Returns the result of a raw_operator applied to a raw_vector X in Y.
std::shared_ptr< rowMatrix_Type > rowMatrixPtr_Type
virtual int ApplyInverse(const vector_Type &X, vector_Type &Y) const
Returns the result of a raw_operator inverse applied to an raw_vector X in Y.
Teuchos::ParameterList pList_Type
int Compute()
Compute the preconditioner.
virtual bool HasNormInf() const
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
Epetra_CrsMatrix rowMatrix_Type
Epetra_MultiVector vector_Type
virtual const char * Label() const
Returns a character string describing the operator.
virtual const map_Type & OperatorDomainMap() const
Returns the raw_map object associated with the domain of this operator.
virtual const map_Type & OperatorRangeMap() const
Returns the raw_map object associated with the range of this operator.
Abstract class to construct preconditioners from a matrix in Epetra_CsrFormat.
rowMatrixPtr_Type M_rowMatrix
std::shared_ptr< operator_Type > operatorPtr_Type