template<class T>
class gismo::gsCDRAssembler< T >
Implementation of an (multiple righ-hand side) Poisson solver.
The Poisson equation: \(-\Delta\mathbf{u}=\mathbf{f} \)
It sets up an assembler and assembles the system patch wise and combines the patch-local stiffness matrices into a global system by various methods (see gismo::gsInterfaceStrategy). It can also enforce Dirichlet boundary conditions in various ways (see gismo::gsDirichletStrategy).
|
const std::vector< gsMatrix< T > > & | allFixedDofs () const |
| Returns all the Dirichlet values (if applicable)
|
|
void | assemble () |
| Main assembly routine.
|
|
virtual void | assemble (const gsMultiPatch< T > &curSolution) |
| Main non-linear assemble routine with input from current solution.
|
|
bool | check () |
| checks for consistency and legal values of the stored members.
|
|
virtual gsAssembler< T > * | clone () const |
| Clone this Assembler, making a deep copy.
|
|
void | computeDirichletDofs (short_t unk=0) |
| Triggers computation of the Dirichlet dofs. More...
|
|
virtual void | constructSolution (const gsMatrix< T > &solVector, gsMultiPatch< T > &result, short_t unk=0) const |
| Construct solution from computed solution vector for a single unknows. More...
|
|
virtual void | constructSolution (const gsMatrix< T > &solVector, gsMultiPatch< T > &result, const gsVector< index_t > &unknowns) const |
| Construct solution from computed solution vector for a set of unknowns. The result is a vectorfield, where each component is given the corresponding entry of. More...
|
|
virtual gsAssembler< T > * | create () const |
| Create an empty Assembler of the derived type and return a pointer to it. Call the initialize functions to set the members.
|
|
void | finalize () |
| finishes the assembling of the system matrix, i.e. calls its .makeCompressed() method.
|
|
const gsMatrix< T > & | fixedDofs (short_t unk=0) const |
| Returns the Dirichlet values for a unknown (if applicable) More...
|
|
gsEigen::SparseSelfAdjointView
< typename gsSparseMatrix< T >
::Base, Lower > | fullMatrix () |
|
| gsCDRAssembler (const gsConvDiffRePde< T > &pde, const gsMultiBasis< T > &bases, stabilizerCDR::method flagStabilization=stabilizerCDR::none) |
| Main Constructor of the assembler object. More...
|
|
| gsCDRAssembler (const gsConvDiffRePde< T > &pde, const gsMultiBasis< T > &bases, dirichlet::strategy dirStrategy, iFace::strategy intStrategy=iFace::glue, stabilizerCDR::method flagStabilization=stabilizerCDR::none) |
| Constructor of the assembler object. More...
|
|
| gsCDRAssembler (gsMultiPatch< T > const &patches, gsMultiBasis< T > const &bases, gsBoundaryConditions< T > const &bconditions, const gsFunction< T > &rhs, const gsFunction< T > &coeff_A, const gsFunction< T > &coeff_b, const gsFunction< T > &coeff_c, dirichlet::strategy dirStrategy=dirichlet::elimination, iFace::strategy intStrategy=iFace::glue, stabilizerCDR::method flagStabilization=stabilizerCDR::none) |
| Constructor of the assembler object. More...
|
|
void | homogenizeFixedDofs (short_t unk=0) |
| Sets any Dirichlet values to homogeneous (if applicable) More...
|
|
void | initialize (const gsPde< T > &pde, const gsStdVectorRef< gsMultiBasis< T > > &bases, const gsOptionList &opt=defaultOptions()) |
| Intitialize function for, sets data fields using the pde, a vector of multi-basis and assembler options.
|
|
void | initialize (typename gsPde< T >::Ptr pde, const gsStdVectorRef< gsMultiBasis< T > > &bases, const gsOptionList &opt=defaultOptions()) |
| Intitialize function for, sets data fields using the pde, a vector of multi-basis and assembler options.
|
|
void | initialize (const gsPde< T > &pde, const gsMultiBasis< T > &bases, const gsOptionList &opt=defaultOptions()) |
| Intitialize function for, sets data fields using the pde, a multi-basis and assembler options.
|
|
void | initialize (const gsPde< T > &pde, const gsBasisRefs< T > &basis, const gsOptionList &opt=defaultOptions()) |
| Intitialize function for, sets data fields using the pde, a vector of bases and assembler options.
|
|
const gsSparseMatrix< T > & | matrix () const |
| Returns the left-hand global matrix.
|
|
const gsMultiBasis< T > & | multiBasis (index_t k=0) const |
| Return the multi-basis.
|
|
gsMultiBasis< T > & | multiBasis (index_t k=0) |
| Return the multi-basis. Note: if the basis is altered, then refresh() should be called.
|
|
index_t | numColNz () const |
| Provides an estimation of the number of non-zero matrix entries per column. This value can be used for sparse matrix memory allocation.
|
|
index_t | numDofs () const |
| Returns the number of (free) degrees of freedom.
|
|
size_t | numMultiBasis () const |
| Returns the number of multi-bases.
|
|
const gsMultiPatch< T > & | patches () const |
| Return the multipatch.
|
|
const gsPde< T > & | pde () const |
| Return the Pde.
|
|
void | penalizeDirichletDofs (short_t unk=0) |
|
T | penalty (index_t k) const |
| Penalty constant for patch k, used for Nitsche and / Discontinuous Galerkin methods.
|
|
template<class ElementVisitor > |
void | push () |
| Iterates over all elements of the domain and applies the ElementVisitor.
|
|
template<class BElementVisitor > |
void | push (const bcContainer &BCs) |
| Iterates over all elements of the boundaries BCs and applies the BElementVisitor.
|
|
template<class ElementVisitor > |
void | push (const ElementVisitor &visitor) |
| Iterates over all elements of the domain and applies the ElementVisitor.
|
|
template<class BElementVisitor > |
void | push (const BElementVisitor &visitor, const boundary_condition< T > &BC) |
| Applies the BElementVisitor to the boundary condition BC.
|
|
template<class InterfaceVisitor > |
void | pushInterface () |
| Iterates over all elements of interfaces and applies the InterfaceVisitor.
|
|
virtual void | refresh () |
| Creates the mappers and setups the sparse system. to be implemented in derived classes, see scalarProblemGalerkinRefresh() for a possible implementation.
|
|
const gsMatrix< T > & | rhs () const |
| Returns the left-hand side vector(s) ( multiple right hand sides possible )
|
|
void | setFixedDofs (const gsMatrix< T > &coefMatrix, short_t unk=0, size_t patch=0) |
| the user can manually set the dirichlet Dofs for a given patch and unknown, based on the Basis coefficients More...
|
|
void | setFixedDofVector (gsMatrix< T > vals, short_t unk=0) |
| the user can manually set the dirichlet Dofs for a given patch and unknown. More...
|
|
void | setSparseSystem (gsSparseSystem< T > &sys) |
| Swaps the actual sparse system with the given one.
|
|
const gsSparseSystem< T > & | system () const |
| Returns the left-hand global matrix.
|
|
virtual void | updateSolution (const gsMatrix< T > &solVector, gsMultiPatch< T > &result, T theta=(T)(1)) const |
| Update solution by adding the computed solution vector to the current solution specified by. More...
|
|