Finite Element Domain Decomposition Library
FEDDLib
|
Public Types | |
typedef Teuchos::RCP< Thyra::LinearOpBase< SC > > | ThyraLinOpPtr_Type |
typedef Teuchos::Comm< int > | Comm_Type |
typedef Teuchos::RCP< const Comm_Type > | CommConstPtr_Type |
Public Member Functions | |
PrecBlock2x2 (CommConstPtr_Type comm) | |
void | setDiagonal (ThyraLinOpPtr_Type velocityInv, ThyraLinOpPtr_Type pressureInv) |
Diagonal preconditioner with \hat{S}= -1/nu M_p schur complement approximation. | |
void | setTriangular (ThyraLinOpPtr_Type velocityInv, ThyraLinOpPtr_Type pressureInv, ThyraLinOpPtr_Type BT) |
Triangular preconditioner with \hat{S}= -1/nu M_p schur complement approximation. | |
void | setTriangular (ThyraLinOpPtr_Type velocityInv, ThyraLinOpPtr_Type laplaceInverse, ThyraLinOpPtr_Type convectionDiffusionOperator, ThyraLinOpPtr_Type massMatrixInverse, ThyraLinOpPtr_Type massMatrixVInverse, ThyraLinOpPtr_Type BT) |
Pressure-Convection-Diffusion (PCD) block triangular preconditioner. | |
void | setTriangular (ThyraLinOpPtr_Type velocityInv, ThyraLinOpPtr_Type laplaceInverse, ThyraLinOpPtr_Type massMatrixVInverse, ThyraLinOpPtr_Type BT) |
Least-Squares-Commutator (LSC) block triangular preconditioner. | |
void | setVeloctiyInv (ThyraLinOpPtr_Type veloctiyInv) |
Setting velocity inverse approximation. | |
void | setPressureInv (ThyraLinOpPtr_Type pressureInv) |
Setting inverse approximation of Schur complement. | |
void | setPressureInvs (ThyraLinOpPtr_Type laplaceInverse, ThyraLinOpPtr_Type convectionDiffusionOperator, ThyraLinOpPtr_Type massMatrixInverse, ThyraLinOpPtr_Type massMatrixVInverse) |
Setting inverse approximation of Schur complement by multiple operators. Corresponds to PCD. | |
void | setPressureInvs (ThyraLinOpPtr_Type laplaceInverse, ThyraLinOpPtr_Type massMatrixVInverse) |
Setting inverse approximation of Schur complement by multiple operators. Corresponds to LSC. | |
void | setB (ThyraLinOpPtr_Type B) |
Setting fluid system matrix B. | |
void | setF (ThyraLinOpPtr_Type F) |
Setting fluid system matrix F. | |
void | setType (std::string type) |
Setting the preconditioning ype. | |
void | initialize () |
virtual void | applyIt (const Thyra::EOpTransp M_trans, const Thyra::MultiVectorBase< SC > &X, const Teuchos::Ptr< Thyra::MultiVectorBase< SC > > &Y, const SC alpha, const SC beta) const |
![]() | |
void | setBlockImpl (const int i, const int j, const RCP< LinearOpType > &block) |
void | setBlockImpl (const int i, const int j, const RCP< LinearOpType > &block) |
virtual void | beginBlockFill () |
virtual void | beginBlockFill (const int numRowBlocks, const int numColBlocks) |
virtual void | beginBlockFill (const Teuchos::RCP< const Thyra::ProductVectorSpaceBase< default_sc > > &productRange, const Teuchos::RCP< const Thyra::ProductVectorSpaceBase< default_sc > > &productDomain) |
virtual bool | blockFillIsActive () const |
virtual bool | acceptsBlock (const int i, const int j) const |
virtual void | setNonconstBlock (const int i, const int j, const Teuchos::RCP< Thyra::LinearOpBase< default_sc > > &block) |
virtual void | setBlock (const int i, const int j, const Teuchos::RCP< const Thyra::LinearOpBase< default_sc > > &block) |
virtual void | endBlockFill () |
virtual void | uninitialize () |
Teuchos::RCP< const Thyra::ProductVectorSpaceBase< default_sc > > | productRange () const |
Teuchos::RCP< const Thyra::ProductVectorSpaceBase< default_sc > > | productDomain () const |
bool | blockExists (const int i, const int j) const |
bool | blockIsConst (const int i, const int j) const |
Teuchos::RCP< Thyra::LinearOpBase< default_sc > > | getNonconstBlock (const int i, const int j) |
Teuchos::RCP< const Thyra::LinearOpBase< default_sc > > | getBlock (const int i, const int j) const |
Teuchos::RCP< const Thyra::VectorSpaceBase< default_sc > > | range () const |
Teuchos::RCP< const Thyra::VectorSpaceBase< default_sc > > | domain () const |
Teuchos::RCP< const Thyra::LinearOpBase< default_sc > > | clone () const |
std::string | description () const |
void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const |
Protected Member Functions | |
virtual void | applyImpl (const Thyra::EOpTransp M_trans, const Thyra::MultiVectorBase< SC > &X, const Teuchos::Ptr< Thyra::MultiVectorBase< SC > > &Y, const SC alpha, const SC beta) const |
Apply of preconditioner in e.g. GMRES. | |
bool | opSupportedImpl (Thyra::EOpTransp M_trans) const |
Returns true only if all constituent operators support M_trans . | |
|
protectedvirtual |
Apply of preconditioner in e.g. GMRES.
Function called within e.g. GMRES to apply the input vector X_in (corresponding to the RHS = (f_u,f_p)) to the preconditioner Output is the contents of vector Y_inout
Implements FEDD::PreconditionerOperator< default_sc, default_lo, default_go, default_no >.
void FEDD::PrecBlock2x2< SC, LO, GO, NO >::setDiagonal | ( | ThyraLinOpPtr_Type | velocityInv, |
ThyraLinOpPtr_Type | pressureInv ) |
Diagonal preconditioner with \hat{S}= -1/nu M_p schur complement approximation.
In the following, we assume that we build a precondtioner for a Stokes-type fluid problem with velocity and pressure variables