LifeV
InvertibleOperator Class Referenceabstract

Abstract class which defines the interface of an Invertible Linear Operator Algebra. More...

#include <InvertibleOperator.hpp>

+ Inheritance diagram for InvertibleOperator:
+ Collaboration diagram for InvertibleOperator:

Public Member Functions

 InvertibleOperator ()
 
- 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 doApplyInverse (const vector_Type &X, vector_Type &Y) const =0
 
virtual void doSetOperator ()=0
 
virtual void doSetPreconditioner ()=0
 
virtual void doSetParameterList ()=0
 

Protected Attributes

std::string M_name
 The name of the Operator. More...
 
Teuchos::RCP< Teuchos::ParameterList > M_pList
 The list of Parameter to feed the linear solver. More...
 
Teuchos::RCP< Epetra_OperatorM_prec
 The preconditioner operator (the boost copy makes sure that the preconditioner is still alive; see .cpp file for details) More...
 
std::shared_ptr< Epetra_OperatorM_precBoost
 
Teuchos::RCP< Epetra_OperatorM_oper
 The operator to be solved (the boost copy makes sure that the operator is still alive; see .cpp file for details) More...
 
std::shared_ptr< Epetra_OperatorM_operBoost
 
bool M_useTranspose
 Whenever to use the transpose. More...
 
int M_numIterations
 Number of iterations performed by the solver. More...
 
double M_solutionTime
 Time spent to solve the linear system. More...
 

Attribute set methods

virtual int SetUseTranspose (bool useTranspose)
 If set true, transpose of this operator will be applied. More...
 
void setOperator (const operatorPtr_Type &_oper)
 
void setPreconditioner (const operatorPtr_Type &_prec)
 
void setParameterList (const Teuchos::ParameterList &_pList)
 

Mathematical functions

virtual int Apply (const vector_Type &X, vector_Type &Y) const
 Returns the result of a Epetra_Operator applied to a vector_Type X in Y. More...
 
virtual int ApplyInverse (const vector_Type &X, vector_Type &Y) const
 Returns the result of a Epetra_Operator inverse applied to an vector_Type X in Y. More...
 
int NumIter () const
 
double TimeSolver () const
 
double NormInf () const
 Returns the infinity norm of the global matrix. More...
 

Attribute access functions

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 Epetra_Map object associated with the domain of this operator. More...
 
virtual const map_TypeOperatorRangeMap () const
 Returns the Epetra_Map object associated with the range of this operator. More...
 

Additional Inherited Members

- 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
 

Detailed Description

Abstract class which defines the interface of an Invertible Linear Operator Algebra.

Definition at line 27 of file InvertibleOperator.hpp.

Constructor & Destructor Documentation

◆ InvertibleOperator()

Definition at line 10 of file InvertibleOperator.cpp.

+ Here is the caller graph for this function:

Member Function Documentation

◆ SetUseTranspose()

int SetUseTranspose ( bool  useTranspose)
virtual

If set true, transpose of this operator will be applied.

Implements LinearOperatorAlgebra.

Definition at line 15 of file InvertibleOperator.cpp.

◆ setOperator()

void setOperator ( const operatorPtr_Type _oper)

Definition at line 26 of file InvertibleOperator.cpp.

◆ setPreconditioner()

void setPreconditioner ( const operatorPtr_Type _prec)

Definition at line 38 of file InvertibleOperator.cpp.

◆ setParameterList()

void setParameterList ( const Teuchos::ParameterList &  _pList)

Definition at line 50 of file InvertibleOperator.cpp.

◆ Apply()

int Apply ( const vector_Type X,
vector_Type Y 
) const
virtual

Returns the result of a Epetra_Operator applied to a vector_Type X in Y.

Implements LinearOperatorAlgebra.

Definition at line 56 of file InvertibleOperator.cpp.

◆ ApplyInverse()

int ApplyInverse ( const vector_Type X,
vector_Type Y 
) const
virtual

Returns the result of a Epetra_Operator inverse applied to an vector_Type X in Y.

Implements LinearOperatorAlgebra.

Definition at line 65 of file InvertibleOperator.cpp.

◆ NumIter()

int NumIter ( ) const
inline

Definition at line 56 of file InvertibleOperator.hpp.

◆ TimeSolver()

double TimeSolver ( ) const
inline

Definition at line 58 of file InvertibleOperator.hpp.

◆ NormInf()

double NormInf ( ) const
inlinevirtual

Returns the infinity norm of the global matrix.

Implements LinearOperatorAlgebra.

Definition at line 61 of file InvertibleOperator.hpp.

◆ Label()

virtual const char* Label ( ) const
inlinevirtual

Returns a character string describing the operator.

Implements LinearOperatorAlgebra.

Definition at line 69 of file InvertibleOperator.hpp.

◆ UseTranspose()

virtual bool UseTranspose ( ) const
inlinevirtual

Returns the current UseTranspose setting.

Implements LinearOperatorAlgebra.

Definition at line 72 of file InvertibleOperator.hpp.

◆ HasNormInf()

virtual bool HasNormInf ( ) const
inlinevirtual

Returns true if the this object can provide an approximate Inf-norm, false otherwise.

Implements LinearOperatorAlgebra.

Definition at line 75 of file InvertibleOperator.hpp.

◆ Comm()

virtual const comm_Type& Comm ( ) const
inlinevirtual

Returns a pointer to the Epetra_Comm communicator associated with this operator.

Implements LinearOperatorAlgebra.

Definition at line 78 of file InvertibleOperator.hpp.

◆ OperatorDomainMap()

virtual const map_Type& OperatorDomainMap ( ) const
inlinevirtual

Returns the Epetra_Map object associated with the domain of this operator.

Implements LinearOperatorAlgebra.

Definition at line 81 of file InvertibleOperator.hpp.

◆ OperatorRangeMap()

virtual const map_Type& OperatorRangeMap ( ) const
inlinevirtual

Returns the Epetra_Map object associated with the range of this operator.

Implements LinearOperatorAlgebra.

Definition at line 84 of file InvertibleOperator.hpp.

◆ doApplyInverse()

virtual int doApplyInverse ( const vector_Type X,
vector_Type Y 
) const
protectedpure virtual

Implemented in BelosOperatorAlgebra, and AztecooOperatorAlgebra.

+ Here is the caller graph for this function:

◆ doSetOperator()

virtual void doSetOperator ( )
protectedpure virtual

Implemented in BelosOperatorAlgebra, and AztecooOperatorAlgebra.

+ Here is the caller graph for this function:

◆ doSetPreconditioner()

virtual void doSetPreconditioner ( )
protectedpure virtual

Implemented in BelosOperatorAlgebra, and AztecooOperatorAlgebra.

+ Here is the caller graph for this function:

◆ doSetParameterList()

virtual void doSetParameterList ( )
protectedpure virtual

Implemented in BelosOperatorAlgebra, and AztecooOperatorAlgebra.

+ Here is the caller graph for this function:

Field Documentation

◆ M_name

std::string M_name
protected

The name of the Operator.

Definition at line 95 of file InvertibleOperator.hpp.

◆ M_pList

Teuchos::RCP<Teuchos::ParameterList> M_pList
protected

The list of Parameter to feed the linear solver.

Definition at line 97 of file InvertibleOperator.hpp.

◆ M_prec

Teuchos::RCP<Epetra_Operator> M_prec
protected

The preconditioner operator (the boost copy makes sure that the preconditioner is still alive; see .cpp file for details)

Definition at line 100 of file InvertibleOperator.hpp.

◆ M_precBoost

std::shared_ptr<Epetra_Operator> M_precBoost
protected

Definition at line 101 of file InvertibleOperator.hpp.

◆ M_oper

Teuchos::RCP<Epetra_Operator> M_oper
protected

The operator to be solved (the boost copy makes sure that the operator is still alive; see .cpp file for details)

Definition at line 104 of file InvertibleOperator.hpp.

◆ M_operBoost

std::shared_ptr<Epetra_Operator> M_operBoost
protected

Definition at line 105 of file InvertibleOperator.hpp.

◆ M_useTranspose

bool M_useTranspose
protected

Whenever to use the transpose.

Definition at line 107 of file InvertibleOperator.hpp.

◆ M_numIterations

int M_numIterations
mutableprotected

Number of iterations performed by the solver.

Definition at line 110 of file InvertibleOperator.hpp.

◆ M_solutionTime

double M_solutionTime
mutableprotected

Time spent to solve the linear system.

Definition at line 113 of file InvertibleOperator.hpp.


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