LifeV
|
InvertibleOperator interface to Belos in Trilinos. BelosOperator requires the operator to be solved and the preconditioner in the form of LinearOperator. More...
#include <BelosOperatorAlgebra.hpp>
Static Public Member Functions | |
static solverManagerMap_Type * | singletonSolverManagerMap () |
static precSideMap_Type * | singletonPrecSideMap () |
Protected Member Functions | |
virtual int | doApplyInverse (const vector_Type &X, vector_Type &Y) const |
virtual void | doSetOperator () |
virtual void | doSetPreconditioner () |
virtual void | doSetParameterList () |
void | allocateSolver (const SolverManagerType &solverManagerType) |
Protected Attributes | |
LinearProblem_ptr | M_linProblem |
The linearProblem. More... | |
SolverType_ptr | M_solverManager |
The linearSolver. More... | |
Teuchos::RCP< Belos::EpetraPrecOp > | M_belosPrec |
Cast to a Belos Preconditioner. More... | |
Protected Attributes inherited from InvertibleOperator | |
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_Operator > | M_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_Operator > | M_precBoost |
Teuchos::RCP< Epetra_Operator > | M_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_Operator > | M_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... | |
Static Protected Attributes | |
static std::unique_ptr< solverManagerMap_Type > | S_solverManagerMap |
static std::unique_ptr< precSideMap_Type > | S_precSideMap |
Public Typedefs and Enumerators | |
enum | PreconditionerSide { None, Left, Right } |
enum | SolverManagerType { NotAValidSolverManager, BlockCG, PseudoBlockCG, RCG, BlockGmres, PseudoBlockGmres, GmresPoly, GCRODR, PCPG, Minres, TFQMR } |
typedef std::map< std::string, SolverManagerType > | solverManagerMap_Type |
typedef std::map< std::string, PreconditionerSide > | precSideMap_Type |
typedef Epetra_MultiVector | MV |
typedef Epetra_Operator | OP |
typedef Belos::LinearProblem< double, MV, OP > | LinearProblem |
typedef Belos::SolverManager< double, MV, OP > | SolverType |
typedef Teuchos::RCP< LinearProblem > | LinearProblem_ptr |
typedef Teuchos::RCP< SolverType > | SolverType_ptr |
BelosOperatorAlgebra () | |
null constructor and destructor More... | |
~BelosOperatorAlgebra () | |
Additional Inherited Members | |
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 |
Public Member Functions inherited from InvertibleOperator | |
InvertibleOperator () | |
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) |
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... | |
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 Epetra_Map object associated with the domain of this operator. More... | |
virtual const map_Type & | OperatorRangeMap () const |
Returns the Epetra_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... | |
InvertibleOperator interface to Belos in Trilinos. BelosOperator requires the operator to be solved and the preconditioner in the form of LinearOperator.
For a description of the class functionality, please refer to the parent class InvertibleOperator.
Definition at line 40 of file BelosOperatorAlgebra.hpp.
typedef std::map<std::string, SolverManagerType> solverManagerMap_Type |
Definition at line 53 of file BelosOperatorAlgebra.hpp.
typedef std::map<std::string, PreconditionerSide> precSideMap_Type |
Definition at line 54 of file BelosOperatorAlgebra.hpp.
typedef Epetra_MultiVector MV |
Definition at line 55 of file BelosOperatorAlgebra.hpp.
typedef Epetra_Operator OP |
Definition at line 56 of file BelosOperatorAlgebra.hpp.
typedef Belos::LinearProblem<double,MV,OP> LinearProblem |
Definition at line 57 of file BelosOperatorAlgebra.hpp.
typedef Belos::SolverManager<double,MV,OP> SolverType |
Definition at line 58 of file BelosOperatorAlgebra.hpp.
typedef Teuchos::RCP<LinearProblem> LinearProblem_ptr |
Definition at line 59 of file BelosOperatorAlgebra.hpp.
typedef Teuchos::RCP<SolverType> SolverType_ptr |
Definition at line 60 of file BelosOperatorAlgebra.hpp.
enum PreconditionerSide |
Enumerator | |
---|---|
None | |
Left | |
Right |
Definition at line 47 of file BelosOperatorAlgebra.hpp.
enum SolverManagerType |
Enumerator | |
---|---|
NotAValidSolverManager | |
BlockCG | |
PseudoBlockCG | |
RCG | |
BlockGmres | |
PseudoBlockGmres | |
GmresPoly | |
GCRODR | |
PCPG | |
Minres | |
TFQMR |
Definition at line 49 of file BelosOperatorAlgebra.hpp.
null constructor and destructor
Definition at line 29 of file BelosOperatorAlgebra.cpp.
|
inline |
Definition at line 67 of file BelosOperatorAlgebra.hpp.
|
static |
Definition at line 182 of file BelosOperatorAlgebra.cpp.
|
static |
Definition at line 199 of file BelosOperatorAlgebra.cpp.
|
protectedvirtual |
Implements InvertibleOperator.
Definition at line 36 of file BelosOperatorAlgebra.cpp.
|
protectedvirtual |
Implements InvertibleOperator.
Definition at line 67 of file BelosOperatorAlgebra.cpp.
|
protectedvirtual |
Implements InvertibleOperator.
Definition at line 72 of file BelosOperatorAlgebra.cpp.
|
protectedvirtual |
Implements InvertibleOperator.
Definition at line 97 of file BelosOperatorAlgebra.cpp.
|
protected |
Definition at line 131 of file BelosOperatorAlgebra.cpp.
|
protected |
The linearProblem.
Definition at line 80 of file BelosOperatorAlgebra.hpp.
|
protected |
The linearSolver.
Definition at line 82 of file BelosOperatorAlgebra.hpp.
|
protected |
Cast to a Belos Preconditioner.
Definition at line 84 of file BelosOperatorAlgebra.hpp.
|
staticprotected |
Definition at line 85 of file BelosOperatorAlgebra.hpp.
|
staticprotected |
Definition at line 86 of file BelosOperatorAlgebra.hpp.