LifeV
TwoLevelPreconditioner Class Reference

An operator that provides a two level approximation of the inverse of a Epetra_CsrMatrix object. More...

#include <TwoLevelPreconditioner.hpp>

+ Inheritance diagram for TwoLevelPreconditioner:
+ Collaboration diagram for TwoLevelPreconditioner:

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_TypeComm () const
 Returns a pointer to the Epetra_Comm communicator associated with this operator. More...
 
virtual const map_TypeOperatorDomainMap () const
 Returns the raw_map object associated with the domain of this operator. More...
 
virtual const map_TypeOperatorRangeMap () 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_TyperowMatrixPtr_Type
 
typedef Teuchos::ParameterList pList_Type
 
- Public Types inherited from LinearOperatorAlgebra
typedef Epetra_Comm comm_Type
 
typedef std::shared_ptr< comm_TypecommPtr_Type
 
typedef Epetra_Map map_Type
 
typedef std::shared_ptr< map_TypemapPtr_Type
 
typedef std::shared_ptr< const map_TypeconstMapPtr_Type
 
typedef Epetra_Operator operator_Type
 
typedef std::shared_ptr< operator_TypeoperatorPtr_Type
 
typedef Epetra_MultiVector vector_Type
 
typedef std::shared_ptr< vector_TypevectorPtr_Type
 
- Protected Attributes inherited from RowMatrixPreconditioner
rowMatrixPtr_Type M_rowMatrix
 
operatorPtr_Type M_prec
 
pList_Type M_pList
 

Detailed Description

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:

  • a parameter EstensionMatrix which stores the extension operator (pointer to Epetra_CsrMatrix).
  • a parameter RestrictionMatrix which stores the restriction operator (pointer to Epetra_CsrMatrix). If not provided the transpose of the extension operator will be used.
  • a sublist CoarseLevel which contains all the information to set-up the coarse solver operator of type ApproximateInverseRowMatrix.
  • a sublist FineLevel which contains all the information to set-up the fine level smoother of type RowMatrixPreconditioner.

Definition at line 44 of file TwoLevelPreconditioner.hpp.

Constructor & Destructor Documentation

◆ TwoLevelPreconditioner()

Definition at line 23 of file TwoLevelPreconditioner.cpp.

+ Here is the caller graph for this function:

◆ ~TwoLevelPreconditioner()

~TwoLevelPreconditioner ( )
virtual

Definition at line 27 of file TwoLevelPreconditioner.cpp.

Member Function Documentation

◆ myCompute()

int myCompute ( )
protectedvirtual

Abstract method myCompute implemented by the derived class.

Implements RowMatrixPreconditioner.

Definition at line 30 of file TwoLevelPreconditioner.cpp.


The documentation for this class was generated from the following files: