template<class T>
class gismo::gsHeatEquation< T >
Constructs the assembler for the discretized isogeometric heat equation.
Spatial solution is discretized using Galerkin's approach. Time integration scheme (method of lines) is controlled by the theta parameter (to be set in options)t. In particular
- Explicit Euler scheme (theta=0)
- Crank-Nicolson semi-implicit scheme (theta=0.5)
- implicit Euler scheme (theta=1)
|
const std::vector< gsMatrix< T > > & | allFixedDofs () const |
| Returns all the Dirichlet values (if applicable)
|
|
void | assemble () |
| Initial assembly routine.
|
|
virtual void | assemble (const gsMultiPatch< T > &curSolution) |
| Main non-linear assemble routine with input from current solution.
|
|
void | assembleMass () |
| Mass assembly routine.
|
|
bool | check () |
| checks for consistency and legal values of the stored members.
|
|
virtual gsAssembler * | 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 * | 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...
|
|
| gsHeatEquation (gsAssembler< T > &stationary) |
| Construction receiving all necessary data.
|
|
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.
|
|
void | nextTimeStep (const gsMatrix< T > &curSolution, const T Dt) |
| Computes the matrix and right-hand side for the next timestep. More...
|
|
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...
|
|