LifeV
|
An operator that provides a two level approximation of the inverse of a Epetra_CsrMatrix
object.
More...
#include <TwoLevelPreconditioner.hpp>
Public Member Functions | |
TwoLevelPreconditioner () | |
virtual | ~TwoLevelPreconditioner () |
Public Member Functions inherited from RowMatrixPreconditioner | |
RowMatrixPreconditioner () | |
Empty constructor. More... | |
virtual | ~RowMatrixPreconditioner () |
Destructor. More... | |
int | Compute () |
Compute the preconditioner. More... | |
void | SetRowMatrix (const rowMatrixPtr_Type &rowMatrix) |
Set the row matrix. More... | |
void | SetParameterList (const pList_Type pList) |
Set the list of paramenters. More... | |
virtual int | SetUseTranspose (bool UseTranspose) |
Transposition. More... | |
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. More... | |
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. More... | |
virtual double | NormInf () const |
Returns the infinity norm of the global matrix. More... | |
virtual const char * | Label () const |
Returns a character string describing the operator. More... | |
virtual bool | UseTranspose () const |
Returns the current UseTranspose setting. More... | |
virtual bool | HasNormInf () const |
Returns true if the this object can provide an approximate Inf-norm, false otherwise. More... | |
virtual const comm_Type & | Comm () const |
Returns a pointer to the Epetra_Comm communicator associated with this operator. More... | |
virtual const map_Type & | OperatorDomainMap () const |
Returns the raw_map object associated with the domain of this operator. More... | |
virtual const map_Type & | OperatorRangeMap () const |
Returns the raw_map object associated with the range of this operator. More... | |
Public Member Functions inherited from LinearOperatorAlgebra | |
virtual | ~LinearOperatorAlgebra () |
Destructor. More... | |
int | apply (const VectorEpetra &X, VectorEpetra &Y) const |
Returns the result of a LinearOperator applied to a VectorEpetra X in Y. More... | |
int | applyInverse (const VectorEpetra &X, VectorEpetra &Y) |
Returns the result of a LinearOperator inverse applied to an VectorEpetra X in Y. More... | |
Protected Member Functions | |
virtual int | myCompute () |
Abstract method myCompute implemented by the derived class. More... | |
Additional Inherited Members | |
Public Types inherited from RowMatrixPreconditioner | |
typedef Epetra_CrsMatrix | rowMatrix_Type |
typedef std::shared_ptr< rowMatrix_Type > | rowMatrixPtr_Type |
typedef Teuchos::ParameterList | pList_Type |
Public Types inherited from LinearOperatorAlgebra | |
typedef Epetra_Comm | comm_Type |
typedef std::shared_ptr< comm_Type > | commPtr_Type |
typedef Epetra_Map | map_Type |
typedef std::shared_ptr< map_Type > | mapPtr_Type |
typedef std::shared_ptr< const map_Type > | constMapPtr_Type |
typedef Epetra_Operator | operator_Type |
typedef std::shared_ptr< operator_Type > | operatorPtr_Type |
typedef Epetra_MultiVector | vector_Type |
typedef std::shared_ptr< vector_Type > | vectorPtr_Type |
Protected Attributes inherited from RowMatrixPreconditioner | |
rowMatrixPtr_Type | M_rowMatrix |
operatorPtr_Type | M_prec |
pList_Type | M_pList |
An operator that provides a two level approximation of the inverse of a Epetra_CsrMatrix
object.
TwoLevelPreconditioner
has exactly the same public interface of its base class RowMatrixPreconditioner
. Internally this class creates a TwoLevelOperator
object. We use the parameterList to inform a TwoLevelPreconditioner
object of additional information as the Restriction and Exstension operator. In particular the parameter list provided to an instance of this class should have:
EstensionMatrix
which stores the extension operator (pointer to Epetra_CsrMatrix). RestrictionMatrix
which stores the restriction operator (pointer to Epetra_CsrMatrix). If not provided the transpose of the extension operator will be used. CoarseLevel
which contains all the information to set-up the coarse solver operator of type ApproximateInverseRowMatrix
. FineLevel
which contains all the information to set-up the fine level smoother of type RowMatrixPreconditioner
. Definition at line 44 of file TwoLevelPreconditioner.hpp.
Definition at line 23 of file TwoLevelPreconditioner.cpp.
|
virtual |
Definition at line 27 of file TwoLevelPreconditioner.cpp.
|
protectedvirtual |
Abstract method myCompute implemented by the derived class.
Implements RowMatrixPreconditioner.
Definition at line 30 of file TwoLevelPreconditioner.cpp.