LifeV
|
Abstract class which defines the interface of a Linear Operator. More...
#include <LinearOperatorAlgebra.hpp>
Public Types | |
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 |
Destructor | |
virtual | ~LinearOperatorAlgebra () |
Destructor. More... | |
Attribute set methods | |
virtual int | SetUseTranspose (bool UseTranspose)=0 |
If set true, transpose of this operator will be applied. More... | |
Mathematical functions | |
virtual int | Apply (const vector_Type &X, vector_Type &Y) const =0 |
Returns the result of a raw_operator applied to a raw_vector X in Y. More... | |
int | apply (const VectorEpetra &X, VectorEpetra &Y) const |
Returns the result of a LinearOperator applied to a VectorEpetra X in Y. More... | |
virtual int | ApplyInverse (const vector_Type &X, vector_Type &Y) const =0 |
Returns the result of a raw_operator inverse applied to an raw_vector 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... | |
virtual double | NormInf () const =0 |
Returns the infinity norm of the global matrix. More... | |
Attribute access functions | |
virtual const char * | Label () const =0 |
Returns a character string describing the operator. More... | |
virtual bool | UseTranspose () const =0 |
Returns the current UseTranspose setting. More... | |
virtual bool | HasNormInf () const =0 |
Returns true if the this object can provide an approximate Inf-norm, false otherwise. More... | |
virtual const comm_Type & | Comm () const =0 |
Returns a pointer to the Epetra_Comm communicator associated with this operator. More... | |
virtual const map_Type & | OperatorDomainMap () const =0 |
Returns the raw_map object associated with the domain of this operator. More... | |
virtual const map_Type & | OperatorRangeMap () const =0 |
Returns the raw_map object associated with the range of this operator. More... | |
Abstract class which defines the interface of a Linear Operator.
LinearOperator is an abstract which inherits from Epetra_Operator. LinearOperator should be the base class for all the LifeV class which implements a linear operator.
LinearOperator ensures perfect compatibility with all the Trilinos solvers, plus it supports directly the LifeV::VectorEpetra data.
Two concrete methods are implemented in LinearOperator int apply(const VectorEpetra &X, VectorEpetra & Y) const ; int applyInverse(const VectorEpetra &X, VectorEpetra &Y) const.
Such methods extract a raw Epetra_MultiVector from the VectorEpetra and then call the virtual methods Int Apply(const Epetra_MultiVector & X, Epetra_MultiVector & Y) const or Int ApplyInverse(const Epetra_MultiVector & X, Epetra_MultiVector & Y) const respectively.
Definition at line 48 of file LinearOperatorAlgebra.hpp.
typedef Epetra_Comm comm_Type |
Definition at line 54 of file LinearOperatorAlgebra.hpp.
typedef std::shared_ptr<comm_Type> commPtr_Type |
Definition at line 55 of file LinearOperatorAlgebra.hpp.
typedef Epetra_Map map_Type |
Definition at line 56 of file LinearOperatorAlgebra.hpp.
typedef std::shared_ptr<map_Type> mapPtr_Type |
Definition at line 57 of file LinearOperatorAlgebra.hpp.
typedef std::shared_ptr<const map_Type> constMapPtr_Type |
Definition at line 58 of file LinearOperatorAlgebra.hpp.
typedef Epetra_Operator operator_Type |
Definition at line 59 of file LinearOperatorAlgebra.hpp.
typedef std::shared_ptr<operator_Type> operatorPtr_Type |
Definition at line 60 of file LinearOperatorAlgebra.hpp.
typedef Epetra_MultiVector vector_Type |
Definition at line 61 of file LinearOperatorAlgebra.hpp.
typedef std::shared_ptr<vector_Type> vectorPtr_Type |
Definition at line 62 of file LinearOperatorAlgebra.hpp.
|
inlinevirtual |
Destructor.
Definition at line 68 of file LinearOperatorAlgebra.hpp.
|
pure virtual |
If set true, transpose of this operator will be applied.
This flag allows the transpose of the given operator to be used implicitly. Setting this flag affects only the Apply() and ApplyInverse() methods. If the implementation of this interface does not support transpose use, this method should return a value of -1.
In | UseTranspose -If true, multiply by the transpose of operator, otherwise just use operator. |
Implemented in NullOperator, IdentityOperator, NavierStokesOperator, aSIMPLEOperator, FSIApplyOperatorNonConforming, BlockOperator, FSIApplyOperator, ApproximatedInvertibleRowMatrix, NavierStokesPreconditionerOperator, BlockJacobiPreconditioner, RowMatrixPreconditioner, TwoLevelOperator, LumpedOperator, InvertibleOperator, and CompositeOperator.
|
pure virtual |
Returns the result of a raw_operator applied to a raw_vector X in Y.
In | X - A raw_vector of dimension NumVectors to multiply with matrix. |
Out | Y -A raw_vector of dimension NumVectors containing result. |
Implemented in NullOperator, IdentityOperator, aSIMPLEOperator, FSIApplyOperatorNonConforming, NavierStokesOperator, ApproximatedInvertibleRowMatrix, BlockOperator, FSIApplyOperator, NavierStokesPreconditionerOperator, RowMatrixPreconditioner, BlockJacobiPreconditioner, TwoLevelOperator, LumpedOperator, InvertibleOperator, and CompositeOperator.
int apply | ( | const VectorEpetra & | X, |
VectorEpetra & | Y | ||
) | const |
Returns the result of a LinearOperator applied to a VectorEpetra X in Y.
In | X - A VectorEpetra to multiply with matrix. |
Out | Y -A VectorEpetra containing result. |
Definition at line 16 of file LinearOperatorAlgebra.cpp.
|
pure virtual |
Returns the result of a raw_operator inverse applied to an raw_vector X in Y.
In | X - A raw_vector of dimension NumVectors to solve for. |
Out | Y -A raw_vector of dimension NumVectors containing result. |
Implemented in NullOperator, IdentityOperator, aSIMPLEOperator, FSIApplyOperatorNonConforming, NavierStokesOperator, NavierStokesPreconditionerOperator, BlockOperator, FSIApplyOperator, ApproximatedInvertibleRowMatrix, RowMatrixPreconditioner, BlockJacobiPreconditioner, TwoLevelOperator, LumpedOperator, InvertibleOperator, and CompositeOperator.
int applyInverse | ( | const VectorEpetra & | X, |
VectorEpetra & | Y | ||
) |
Returns the result of a LinearOperator inverse applied to an VectorEpetra X in Y.
In | X - A VectorEpetra to solve for. |
Out | Y -A VectorEpetra containing result. |
Definition at line 21 of file LinearOperatorAlgebra.cpp.
|
pure virtual |
Returns the infinity norm of the global matrix.
Implemented in NullOperator, IdentityOperator, aSIMPLEOperator, NavierStokesOperator, FSIApplyOperatorNonConforming, NavierStokesPreconditionerOperator, BlockOperator, FSIApplyOperator, ApproximatedInvertibleRowMatrix, RowMatrixPreconditioner, BlockJacobiPreconditioner, TwoLevelOperator, LumpedOperator, InvertibleOperator, and CompositeOperator.
|
pure virtual |
Returns a character string describing the operator.
Implemented in NullOperator, IdentityOperator, aSIMPLEOperator, FSIApplyOperatorNonConforming, NavierStokesOperator, NavierStokesPreconditionerOperator, BlockOperator, FSIApplyOperator, ApproximatedInvertibleRowMatrix, RowMatrixPreconditioner, BlockJacobiPreconditioner, TwoLevelOperator, InvertibleOperator, LumpedOperator, and CompositeOperator.
|
pure virtual |
Returns the current UseTranspose setting.
Implemented in NullOperator, IdentityOperator, aSIMPLEOperator, NavierStokesOperator, FSIApplyOperatorNonConforming, NavierStokesPreconditionerOperator, BlockOperator, FSIApplyOperator, ApproximatedInvertibleRowMatrix, RowMatrixPreconditioner, BlockJacobiPreconditioner, TwoLevelOperator, InvertibleOperator, LumpedOperator, and CompositeOperator.
|
pure virtual |
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
Implemented in NullOperator, IdentityOperator, aSIMPLEOperator, NavierStokesOperator, FSIApplyOperatorNonConforming, NavierStokesPreconditionerOperator, BlockOperator, FSIApplyOperator, ApproximatedInvertibleRowMatrix, RowMatrixPreconditioner, BlockJacobiPreconditioner, TwoLevelOperator, InvertibleOperator, LumpedOperator, and CompositeOperator.
|
pure virtual |
Returns a pointer to the Epetra_Comm communicator associated with this operator.
Implemented in NullOperator, IdentityOperator, aSIMPLEOperator, NavierStokesOperator, FSIApplyOperatorNonConforming, NavierStokesPreconditionerOperator, BlockOperator, ApproximatedInvertibleRowMatrix, FSIApplyOperator, RowMatrixPreconditioner, BlockJacobiPreconditioner, TwoLevelOperator, InvertibleOperator, LumpedOperator, and CompositeOperator.
|
pure virtual |
Returns the raw_map object associated with the domain of this operator.
Implemented in NullOperator, IdentityOperator, aSIMPLEOperator, NavierStokesOperator, FSIApplyOperatorNonConforming, NavierStokesPreconditionerOperator, BlockOperator, FSIApplyOperator, ApproximatedInvertibleRowMatrix, RowMatrixPreconditioner, BlockJacobiPreconditioner, TwoLevelOperator, InvertibleOperator, LumpedOperator, and CompositeOperator.
|
pure virtual |
Returns the raw_map object associated with the range of this operator.
Implemented in NullOperator, IdentityOperator, aSIMPLEOperator, NavierStokesOperator, FSIApplyOperatorNonConforming, BlockOperator, FSIApplyOperator, NavierStokesPreconditionerOperator, RowMatrixPreconditioner, ApproximatedInvertibleRowMatrix, BlockJacobiPreconditioner, TwoLevelOperator, InvertibleOperator, LumpedOperator, and CompositeOperator.