|
Teko Version of the Day
|
Modified augmented Lagrangian-based preconditioner for incompressible Navier-Stokes equations. More...
#include <Teko_ModALPreconditionerFactory.hpp>

Public Member Functions | |
| void | setPressureMassMatrix (const LinearOp &pressureMassMatrix) |
| void | setGamma (double gamma) |
| virtual LinearOp | buildPreconditionerOperator (BlockedLinearOp &alOp, BlockPreconditionerState &state) const |
| virtual Teuchos::RCP< PreconditionerState > | buildPreconditionerState () const |
Public Member Functions inherited from Teko::BlockPreconditionerFactory | |
| virtual LinearOp | buildPreconditionerOperator (BlockedLinearOp &blo, BlockPreconditionerState &state) const =0 |
| Function that is called to build the preconditioner for the linear operator that is passed in. More... | |
| virtual RCP< PreconditionerState > | buildPreconditionerState () const |
| Function that permits the construction of an arbitrary BlockPreconditionerState object. More... | |
| RCP< BlockPreconditionerState > | buildBlockPreconditionerState () const |
| Function that constructs a BlockPreconditionerState object. More... | |
| virtual LinearOp | buildPreconditionerOperator (LinearOp &blo, PreconditionerState &state) const |
| Function that is called to build the preconditioner for the linear operator that is passed in. More... | |
| bool | isCompatible (const Thyra::LinearOpSourceBase< double > &fwdOpSrc) const |
| is this operator compatiable with the preconditioner factory? More... | |
Public Member Functions inherited from Teko::PreconditionerFactory | |
| virtual LinearOp | buildPreconditionerOperator (LinearOp &lo, PreconditionerState &state) const =0 |
| Function that is called to build the preconditioner for the linear operator that is passed in. More... | |
| virtual Teuchos::RCP< PreconditionerState > | buildPreconditionerState () const |
| Function that permits the construction of an arbitrary PreconditionerState object. More... | |
| virtual void | initializeFromParameterList (const Teuchos::ParameterList &) |
| This function builds the internals of the preconditioner factory from a parameter list. More... | |
| virtual Teuchos::RCP< Teuchos::ParameterList > | getRequestedParameters () const |
| Request the additional parameters this preconditioner factory needs. More... | |
| virtual bool | updateRequestedParameters (const Teuchos::ParameterList &) |
| Update this object with the fields from a parameter list. More... | |
| void | setInverseLibrary (const Teuchos::RCP< const InverseLibrary > &il) |
| Set the inverse library used by this preconditioner factory. More... | |
| Teuchos::RCP< const InverseLibrary > | getInverseLibrary () const |
| Get the inverse library used by this preconditioner factory. More... | |
| bool | isCompatible (const Thyra::LinearOpSourceBase< double > &fwdOpSrc) const |
| is this operator compatiable with the preconditioner factory? More... | |
| Teuchos::RCP< Thyra::PreconditionerBase< double > > | createPrec () const |
| create an instance of the preconditioner More... | |
| void | initializePrec (const Teuchos::RCP< const Thyra::LinearOpSourceBase< double > > &fwdOpSrc, const Teuchos::RCP< const Thyra::MultiVectorBase< double > > &solnVec, Thyra::PreconditionerBase< double > *precOp, const Thyra::ESupportSolveUse supportSolveUse) const |
| initialize a newly created preconditioner object More... | |
| void | initializePrec (const Teuchos::RCP< const Thyra::LinearOpSourceBase< double > > &fwdOpSrc, Thyra::PreconditionerBase< double > *precOp, const Thyra::ESupportSolveUse supportSolveUse) const |
| initialize a newly created preconditioner object More... | |
| void | uninitializePrec (Thyra::PreconditionerBase< double > *prec, Teuchos::RCP< const Thyra::LinearOpSourceBase< double > > *fwdOpSrc, Thyra::ESupportSolveUse *supportSolveUse) const |
| wipe clean a already initialized preconditioner object More... | |
| void | setParameterList (const Teuchos::RCP< Teuchos::ParameterList > ¶mList) |
| Set parameters from a parameter list and return with default values. More... | |
| Teuchos::RCP< Teuchos::ParameterList > | getNonconstParameterList () |
| Get the parameter list that was set using setParameterList(). More... | |
| Teuchos::RCP< Teuchos::ParameterList > | unsetParameterList () |
| Unset the parameter list that was set using setParameterList(). More... | |
| void | setRequestHandler (const Teuchos::RCP< RequestHandler > &rh) |
| Set the request handler with pointers to the appropriate callbacks. More... | |
| Teuchos::RCP< RequestHandler > | getRequestHandler () const |
| Get the request handler with pointers to the appropriate callbacks. More... | |
| virtual void | setRequestHandler (const Teuchos::RCP< RequestHandler > &rh)=0 |
| Set the request handler with pointers to the appropriate callbacks. More... | |
| virtual Teuchos::RCP< RequestHandler > | getRequestHandler () const =0 |
| Get the request handler with pointers to the appropriate callbacks. More... | |
Protected Member Functions | |
| virtual LinearOp | buildPreconditionerOperator (BlockedLinearOp &blo, BlockPreconditionerState &state) const=0 |
| Function that is called to build the preconditioner for the linear operator that is passed in. More... | |
| virtual LinearOp | buildPreconditionerOperator (LinearOp &blo, PreconditionerState &state) const |
| Function that is called to build the preconditioner for the linear operator that is passed in. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from Teko::PreconditionerFactory | |
| static Teuchos::RCP< PreconditionerFactory > | buildPreconditionerFactory (const std::string &name, const Teuchos::ParameterList &settings, const Teuchos::RCP< const InverseLibrary > &invLib=Teuchos::null) |
| Builder function for creating preconditioner factories (yes this is a factory factory). More... | |
| static void | addPreconditionerFactory (const std::string &name, const Teuchos::RCP< Cloneable > &clone) |
| Add a preconditioner factory to the builder. This is done using the clone pattern. More... | |
| static void | getPreconditionerFactoryNames (std::vector< std::string > &names) |
| Get the names of the block preconditioner factories. More... | |
Protected Attributes inherited from Teko::PreconditionerFactory | |
| Teuchos::RCP< Teuchos::ParameterList > | paramList_ |
| for ParameterListAcceptor More... | |
| Teuchos::RCP< RequestHandler > | callbackHandler_ |
| For handling requests and send requests back to the user. More... | |
Modified augmented Lagrangian-based preconditioner for incompressible Navier-Stokes equations.
This class implements sparse matrix vector multiplication for augmented Lagrangian-based preconditioners. Details can be found in the following papers:
[1] Benzi, M. A. Olshanskii and Z. Wang, Modified Augmented Lagrangian Preconditioners for the Incompressible Navier-Stokes Equations, International Journal for Numerical Methods in Fluids, 66 (2011), pp. 486-508.
[2] M. Benzi and Z. Wang, Analysis of Augmented Lagrangian-Based Preconditioners for the Steady Incompressible Navier-Stokes Equations, SIAM J. Scientific Computing, 33 (2011), pp. 2761-2784.
Suppose we are solving the following linear system:
![]()
The equivalent augmented Lagrangian (AL) formulation is:
![]()
Here
can be take as the diagonal of the pressure mass matrix and
is a positive number.
If
,
then the modified AL preconditioner is defined as
![]()
More details (analysis, numerical results) can be found in [2].
Definition at line 112 of file Teko_ModALPreconditionerFactory.hpp.
|
inline |
Set pressure mass matrix.
| [in] | pressureMassMatrix | Pressure mass matrix. |
Definition at line 138 of file Teko_ModALPreconditionerFactory.hpp.
|
inline |
Set the augmentation parameter gamma.
| [in] | gamma | Augmentation paramter. |
Definition at line 149 of file Teko_ModALPreconditionerFactory.hpp.
|
virtual |
Build modified AL preconditioner.
| [in] | alOp | The AL operator. |
| [in] | state | State object for storying reusable information about the AL operator. |
Implements Teko::BlockPreconditionerFactory.
Definition at line 71 of file Teko_ModALPreconditionerFactory.cpp.
|
inlinevirtual |
Build the ModALPrecondState object.
Reimplemented from Teko::BlockPreconditionerFactory.
Definition at line 170 of file Teko_ModALPreconditionerFactory.hpp.
|
protectedvirtual |
Function that is called to build the preconditioner for the linear operator that is passed in.
This function builds a preconditioner based on the passed in BlockedLinearOp.
| [in] | blo | Source linear operator that is to be preconditioned. |
| [in] | state | An object associated with this operator to store the preconditioner state. |
Implements Teko::BlockPreconditionerFactory.
|
protectedvirtual |
Function that is called to build the preconditioner for the linear operator that is passed in.
This function builds a preconditioner based on the passed in LinearOp.
| [in] | lo | Source linear operator that is to be preconditioned. |
| [in] | state | An object associated with this operator to store the preconditioner state. |
Reimplemented from Teko::BlockPreconditionerFactory.
Definition at line 141 of file Teko_BlockPreconditionerFactory.cpp.