G+Smo  23.12.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsPatchPreconditionersCreator< T > Class Template Reference

Detailed Description

template<typename T>
class gismo::gsPatchPreconditionersCreator< T >

Provides robust preconditioners for single patch geometries.

This class provides efficient preconditioners for single patch geometries, assuming to have gsTensorBasis.

Static Public Member Functions

static OpUPtr fastDiagonalizationOp (const gsBasis< T > &basis, const gsBoundaryConditions< T > &bc=gsBoundaryConditions< T >(), const gsOptionList &opt=gsAssembler< T >::defaultOptions(), T alpha=0, T beta=1, T gamma=0)
 
static std::pair< std::vector
< gsSparseMatrix< T >
>, std::vector
< gsSparseMatrix< T > > > 
getTildeSpaceBasisTransformation (const gsBasis< T > &basis, const gsBoundaryConditions< T > &bc=gsBoundaryConditions< T >(), const gsOptionList &opt=gsAssembler< T >::defaultOptions())
 
static gsSparseMatrix< T > massMatrix (const gsBasis< T > &basis, const gsBoundaryConditions< T > &bc=gsBoundaryConditions< T >(), const gsOptionList &opt=gsAssembler< T >::defaultOptions())
 
static OpUPtr massMatrixInvOp (const gsBasis< T > &basis, const gsBoundaryConditions< T > &bc=gsBoundaryConditions< T >(), const gsOptionList &opt=gsAssembler< T >::defaultOptions())
 
static OpUPtr massMatrixOp (const gsBasis< T > &basis, const gsBoundaryConditions< T > &bc=gsBoundaryConditions< T >(), const gsOptionList &opt=gsAssembler< T >::defaultOptions())
 
static gsSparseMatrix< T > stiffnessMatrix (const gsBasis< T > &basis, const gsBoundaryConditions< T > &bc=gsBoundaryConditions< T >(), const gsOptionList &opt=gsAssembler< T >::defaultOptions(), T alpha=0, T beta=1)
 
static OpUPtr stiffnessMatrixOp (const gsBasis< T > &basis, const gsBoundaryConditions< T > &bc=gsBoundaryConditions< T >(), const gsOptionList &opt=gsAssembler< T >::defaultOptions(), T alpha=0, T beta=1)
 
static OpUPtr subspaceCorrectedMassSmootherOp (const gsBasis< T > &basis, const gsBoundaryConditions< T > &bc=gsBoundaryConditions< T >(), const gsOptionList &opt=gsAssembler< T >::defaultOptions(), T sigma=(T)(12)/(T)(100), T alpha=0, T beta=1)
 

Member Function Documentation

gsPatchPreconditionersCreator< T >::OpUPtr fastDiagonalizationOp ( const gsBasis< T > &  basis,
const gsBoundaryConditions< T > &  bc = gsBoundaryConditions<T>(),
const gsOptionList opt = gsAssembler<T>::defaultOptions(),
alpha = 0,
beta = 1,
gamma = 0 
)
static

Provides gsLinearOperator representing the inverse stiffness matrix on the parameter domain based on the fast diagonalization approach (SIAM J. Sci. Comput., 38 (6), p. A3644 - A3671, 2016)

The stiffness matrix represents \( \beta (\nabla u, \nabla v)_{L_2} + \alpha (u, v)_{L_2} + \gamma (u, 1)_{L_2} (v,1)_{L_2} \)

Parameters
basisA tensor basis
bcBoundary conditions
optAssembler options
alphaScaling parameter (see above)
betaScaling parameter (see above)
gammaScaling parameter (see above). Only allowed for pure Neumann case.
std::pair< std::vector< gsSparseMatrix< T > >, std::vector< gsSparseMatrix< T > > > getTildeSpaceBasisTransformation ( const gsBasis< T > &  basis,
const gsBoundaryConditions< T > &  bc = gsBoundaryConditions<T>(),
const gsOptionList opt = gsAssembler<T>::defaultOptions() 
)
static

Provides matrices that represent the basis of the space \( \widetilde{S}_{p,h} \), as introduced in M^3AS. 26 (7), p. 1411 - 1445, 2016, and its \(\ell^2\) - orthogonal complement.

Parameters
basisA tensor basis
bcBoundary conditions
optAssembler options
Returns
std::pair containing std::vector of d sparse matrices (for each dimension) that represent the basis transformation for (a) \( \widetilde{S}_{p,h} \), and (b) its complement.
gsSparseMatrix< T > massMatrix ( const gsBasis< T > &  basis,
const gsBoundaryConditions< T > &  bc = gsBoundaryConditions<T>(),
const gsOptionList opt = gsAssembler<T>::defaultOptions() 
)
static

Provieds the mass matrix on the parameter domain

Parameters
basisA tensor basis
bcBoundary conditions
optAssembler options
gsPatchPreconditionersCreator< T >::OpUPtr massMatrixInvOp ( const gsBasis< T > &  basis,
const gsBoundaryConditions< T > &  bc = gsBoundaryConditions<T>(),
const gsOptionList opt = gsAssembler<T>::defaultOptions() 
)
static

Provides gsLinearOperator representing the inverse of the mass matrix (in a matrix-free way) on the parameter domain

Parameters
basisA tensor basis
bcBoundary conditions
optAssembler options
gsPatchPreconditionersCreator< T >::OpUPtr massMatrixOp ( const gsBasis< T > &  basis,
const gsBoundaryConditions< T > &  bc = gsBoundaryConditions<T>(),
const gsOptionList opt = gsAssembler<T>::defaultOptions() 
)
static

Provides gsLinearOperator representing the mass matrix (in a matrix-free way) on the parameter domain

Parameters
basisA tensor basis
bcBoundary conditions
optAssembler options
gsSparseMatrix< T > stiffnessMatrix ( const gsBasis< T > &  basis,
const gsBoundaryConditions< T > &  bc = gsBoundaryConditions<T>(),
const gsOptionList opt = gsAssembler<T>::defaultOptions(),
alpha = 0,
beta = 1 
)
static

Provieds stiffness matrix on the parameter domain

The stiffness matrix represents \( - \beta \Delta u + \alpha u \)

Parameters
basisA tensor basis
bcBoundary conditions
optAssembler options
alphaScaling parameter (see above)
gsPatchPreconditionersCreator< T >::OpUPtr stiffnessMatrixOp ( const gsBasis< T > &  basis,
const gsBoundaryConditions< T > &  bc = gsBoundaryConditions<T>(),
const gsOptionList opt = gsAssembler<T>::defaultOptions(),
alpha = 0,
beta = 1 
)
static

Provides gsLinearOperator representing the stiffness matrix (in a matrix-free way) on the parameter domain

The stiffness matrix represents \( - \beta \Delta u + \alpha u \)

Parameters
basisA tensor basis
bcBoundary conditions
optAssembler options
alphaScaling parameter (see above)
gsPatchPreconditionersCreator< T >::OpUPtr subspaceCorrectedMassSmootherOp ( const gsBasis< T > &  basis,
const gsBoundaryConditions< T > &  bc = gsBoundaryConditions<T>(),
const gsOptionList opt = gsAssembler<T>::defaultOptions(),
sigma = (T)(12) / (T)(100),
alpha = 0,
beta = 1 
)
static

Provides gsLinearOperator representing the subspace corrected mass smoother on the parameter domain (SIAM J. on Numerical Analysis. 55 (4). p. 2004 - 2024, 2017)

This operator is spectrally equivalent to the inverse of

\( \beta ( - \Delta u + \sigma h^{-2} u) + \alpha u \)

assuming \( \sigma = \mathcal{O}(1) \) to be large enough; the exact meaning of \( \sigma \) is explained in the abovementioned paper ( \( \sigma \) from the paper equals \( 1/(\sigma*h*h) \) here.)

Parameters
basisA tensor basis
bcBoundary conditions
optAssembler options
sigmaScaling parameter (see above)
alphaScaling parameter (see above)
betaScaling parameter (see above)