![]() |
G+Smo
25.01.0
Geometry + Simulation Modules
|
Augmented Lagrangian preconditioner.
T | coefficient type |
BlockFType | type of block \fF\f |
Public Member Functions | |
virtual void | apply (const gsMatrix< T > &input, gsMatrix< T > &x) const |
Apply the preconditioner. Computes the vector \fx = P^{-1} y\f. | |
virtual int | cols () const |
Returns the number of columns of the preconditioner. | |
virtual std::string | getName () |
Returns the preconditioner name as a string. | |
gsINSBlockPrecondAL (const std::map< std::string, gsSparseMatrix< T, MatOrder > > &mat, const gsOptionList &opt) | |
Constructor. | |
virtual int | rows () const |
Returns the number of rows of the preconditioner. | |
virtual void | setOptions (const gsOptionList &) |
Set options based on a gsOptionList object. | |
virtual void | update (const std::map< std::string, gsSparseMatrix< T, MatOrder > > &mat) |
Update the preconditioner (new linearization or time step). | |
Static Public Member Functions | |
static gsOptionList | defaultOptions () |
Returns default preconditioner options as a gsOptionList object. | |
static void | fillALgammaPart_into (gsSparseMatrix< T, MatOrder > &matGammaPart, gsMatrix< T > &rhsGammaPart, const std::map< std::string, gsSparseMatrix< T, MatOrder > > &mat, const gsMatrix< T > &rhs, const gsOptionList &opt) |
Fill the extra part of the Augmented Lagrangian linear system. | |
static void | fillALmodifSystem_into (gsSparseMatrix< T, MatOrder > &matGamma, gsMatrix< T > &rhsGamma, const std::map< std::string, gsSparseMatrix< T, MatOrder > > &mat, const gsMatrix< T > &rhs, const gsOptionList &opt) |
Fill the Augmented Lagrangian linear system. | |
static gsIdentityOp< T > | Identity (const index_t dim) |
Identity operator. | |
static uPtr | make () |
Returns a unique pointer to a newly created instance. | |
static uPtr | make (const std::map< std::string, gsSparseMatrix< T, MatOrder > > &mat, const gsOptionList &opt) |
Returns a unique pointer to a newly created instance. | |
static uPtr | make (gsINSPrecondBlock< T > *Finv, gsLinearOperator< T > *B, gsINSPrecondBlock< T > *Sinv, const gsOptionList &opt) |
Returns a unique pointer to a newly created instance. | |
static uPtr | make (std::string precType, const std::map< std::string, gsSparseMatrix< T, MatOrder > > &mat, const gsOptionList &opt) |
Returns a unique pointer to a newly created instance of the given preconditioner type. | |
Protected Member Functions | |
void | update (gsINSPrecondBlock< T > *Finv) |
Update the preconditioner (new linearization or time step). To be used when only the \fF\f block changes. | |
void | update (gsINSPrecondBlock< T > *Finv, gsINSPrecondBlock< T > *Sinv) |
Update the preconditioner (new linearization or time step). To be used when both \fF\f and \fS\f block change. | |
|
inline |
Constructor.
[in] | mat | a reference to the std::map of labeled matrices needed for construction of the preconditioner |
[in] | opt | a list of options for the preconditioner |
|
virtualinherited |
Apply the preconditioner. Computes the vector \fx = P^{-1} y\f.
[in] | input | a const reference the vector \f y \f |
[out] | x | a reference to the resulting vector \f x \f |
Implements gsLinearOperator< T >.
Reimplemented in gsINSBlockPrecondSIMPLE< T, MatOrder, BlockFType >, gsINSBlockPrecondSIMPLE< T, MatOrder, gsINSPrecondBlockF< T, MatOrder > >, gsINSBlockPrecondSIMPLER< T, MatOrder, BlockFType >, and gsINSBlockPrecondMSIMPLER< T, MatOrder, BlockFType >.
|
static |
Fill the extra part of the Augmented Lagrangian linear system.
[out] | matGammaPart | a reference to the resulting matrix |
[out] | rhsGammaPart | a reference to the resulting right-hand side |
[in] | mat | a const reference to std::map of labeled blocks of the original system |
[in] | rhs | the original right-hand side |
[in] | opt | a list of options for the preconditioner |
|
static |
Fill the Augmented Lagrangian linear system.
[out] | matGamma | a reference to the resulting matrix |
[out] | rhsGamma | a reference to the resulting right-hand side |
[in] | mat | a const reference to std::map of labeled blocks of the original system |
[in] | rhs | the original right-hand side |
[in] | opt | a list of options for the preconditioner |
|
inlinestatic |
Returns a unique pointer to a newly created instance.
[in] | mat | a const reference to std::map of labeled matrices needed for construction of the preconditioner |
[in] | opt | a list of options for the preconditioner |
|
staticinherited |
Returns a unique pointer to a newly created instance of the given preconditioner type.
[in] | precType | the reqiured preconditioner type as a string |
[in] | mat | a const reference to std::map of labeled matrices needed for construction of the preconditioner (assuming the following order: NS system matrix, mass matrix (velocity, pressure or both), other matrices) |
[in] | opt | a list of options for the preconditioner |
|
inlinevirtual |
Update the preconditioner (new linearization or time step).
[in] | mat | a const reference to std::map of updated matrices |
|
inlineprotectedinherited |
Update the preconditioner (new linearization or time step). To be used when only the \fF\f block changes.
[in] | Finv | a pointer to the new \fF\f block |
|
inlineprotectedinherited |
Update the preconditioner (new linearization or time step). To be used when both \fF\f and \fS\f block change.
[in] | Finv | a pointer to the new \fF\f block |
[in] | Sinv | a pointer to the new \fS\f block |