G+Smo  25.01.0
Geometry + Simulation Modules
 
Loading...
Searching...
No Matches
gsBlockPrecondStokes< T, MatOrder, BlockFType > Class Template Reference

Detailed Description

template<class T, int MatOrder, class BlockFType = gsINSPrecondBlockF<T, MatOrder>>
class gismo::gsBlockPrecondStokes< T, MatOrder, BlockFType >

Block diagonal preconditioner for the Stokes problem.

Template Parameters
Tcoefficient type
BlockFTypetype of block \fF\f

Inherits gsINSPreconditioner< T, MatOrder >.

+ Collaboration diagram for gsBlockPrecondStokes< T, MatOrder, BlockFType >:

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.
 
 gsBlockPrecondStokes (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 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 (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.
 

Constructor & Destructor Documentation

◆ gsBlockPrecondStokes()

template<class T , int MatOrder, class BlockFType = gsINSPrecondBlockF<T, MatOrder>>
gsBlockPrecondStokes ( const std::map< std::string, gsSparseMatrix< T, MatOrder > > &  mat,
const gsOptionList opt 
)
inline

Constructor.

Parameters
[in]mata reference to the std::map of labeled matrices needed for construction of the preconditioner
[in]opta list of options for the preconditioner

Member Function Documentation

◆ apply()

template<class T , int MatOrder, class BlockFType >
void apply ( const gsMatrix< T > &  input,
gsMatrix< T > &  x 
) const
virtual

Apply the preconditioner. Computes the vector \fx = P^{-1} y\f.

Parameters
[in]inputa const reference the vector \f y \f
[out]xa reference to the resulting vector \f x \f

Implements gsLinearOperator< T >.

◆ make() [1/2]

template<class T , int MatOrder, class BlockFType = gsINSPrecondBlockF<T, MatOrder>>
static uPtr make ( const std::map< std::string, gsSparseMatrix< T, MatOrder > > &  mat,
const gsOptionList opt 
)
inlinestatic

Returns a unique pointer to a newly created instance.

Parameters
[in]mata const reference to std::map of labeled matrices needed for construction of the preconditioner
[in]opta list of options for the preconditioner

◆ make() [2/2]

template<class T , int MatOrder>
gsINSPreconditioner< T, MatOrder >::uPtr make ( std::string  precType,
const std::map< std::string, gsSparseMatrix< T, MatOrder > > &  mat,
const gsOptionList opt 
)
staticinherited

Returns a unique pointer to a newly created instance of the given preconditioner type.

Parameters
[in]precTypethe reqiured preconditioner type as a string
[in]mata 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]opta list of options for the preconditioner

◆ update()

template<class T , int MatOrder, class BlockFType = gsINSPrecondBlockF<T, MatOrder>>
virtual void update ( const std::map< std::string, gsSparseMatrix< T, MatOrder > > &  mat)
inlinevirtual

Update the preconditioner (new linearization or time step).

Parameters
[in]mata const reference to std::map of updated matrices