18 #ifndef TWOLEVELOPERATOR_HPP_ 19 #define TWOLEVELOPERATOR_HPP_ 21 #include <lifev/core/linear_algebra/LinearOperatorAlgebra.hpp> 75 virtual const char *
Label()
const;
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.
virtual const map_Type & OperatorRangeMap() const
Returns the raw_map object associated with the range of this operator.
virtual ~TwoLevelOperator()
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.
void SetSmootherOperator(const operatorPtr_Type &smootherOper)
Set the fine level smoother (smootherOper should have a ApplyInverse method)
virtual bool UseTranspose() const
Returns the current UseTranspose setting.
virtual const char * Label() const
Returns a character string describing the operator.
void SetRestrictionOperator(const operatorPtr_Type &restrictionOper)
Set the restriction operator from the fine to coarse level.
virtual const map_Type & OperatorDomainMap() const
Returns the raw_map object associated with the domain of this operator.
Abstract class which defines the interface of a Linear Operator.
void updateInverseJacobian(const UInt &iQuadPt)
virtual double NormInf() const
Returns the infinity norm of the global matrix.
It defines a two level methods to approximately apply the inverse of a fine level operator...
operatorPtr_Type M_restrictionOper
operatorPtr_Type M_estensionOper
operatorPtr_Type M_coarseLevelOper
int checkConsistency()
Check that the range and domains of all operators are compatible.
operatorPtr_Type M_smootherOper
void SetFineLevelOperator(const operatorPtr_Type &fineLevelOper)
Set the fine level operator.
virtual int SetUseTranspose(bool UseTranspose)
void SetCoarseLevelOperator(const operatorPtr_Type &coarseLevelOper)
Set the coarse level solver (coarseLevelOper should have a ApplyInverse method)
virtual bool HasNormInf() const
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
operatorPtr_Type M_fineLevelOper
Epetra_MultiVector vector_Type
void SetEstensionOperator(const operatorPtr_Type &estensionOper)
Set the extension operatoe from the coarse to fine level.
virtual const comm_Type & Comm() const
Returns a pointer to the Epetra_Comm communicator associated with this operator.
std::shared_ptr< operator_Type > operatorPtr_Type