template<class T>
class gismo::gsElasticityAssembler< T >
Assembles the stiffness matrix and the right-hand side vector for linear and nonlinear elasticity for 2D plain stress and 3D continua. The matrix and vector have a block structure associated with components of the displacement vector, each block corresponding to one component. Supports mixed displacement-pressure formulation.
|
const std::vector< gsMatrix< T > > & | allFixedDofs () const |
| Returns all the Dirichlet values (if applicable)
|
|
virtual void | assemble (bool saveEliminationMatrix=false) |
| Assembles the stiffness matrix and the RHS for the LINEAR ELASTICITY set assembleMatrix to false to only assemble the RHS;.
|
|
virtual bool | assemble (const gsMatrix< T > &solutionVector, const std::vector< gsMatrix< T > > &fixedDoFs) |
|
virtual void | assemble () |
| Main assemble routine, to be implemented in derived classes.
|
|
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 | constructCauchyStresses (const gsMultiPatch< T > &displacement, gsPiecewiseFunction< T > &result, stress_components::components component=stress_components::von_mises) const |
| Construct Cauchy stresses for evaluation or visualization.
|
|
virtual void | constructCauchyStresses (const gsMultiPatch< T > &displacement, const gsMultiPatch< T > &pressure, gsPiecewiseFunction< T > &result, stress_components::components component=stress_components::von_mises) const |
| Construct Cauchy stresses for evaluation or visualization.
|
|
virtual void | constructPressure (const gsMatrix< T > &solVector, const std::vector< gsMatrix< T > > &fixedDoFs, gsMultiPatch< T > &pressure) const |
| @ brief Construct pressure from computed solution vector
|
|
virtual void | constructSolution (const gsMatrix< T > &solVector, const std::vector< gsMatrix< T > > &fixedDDofs, gsMultiPatch< T > &result, const gsVector< index_t > &unknowns) const |
| Constructs solution as a gsMultiPatch object from the solution vector and fixed DoFs.
|
|
virtual void | constructSolution (const gsMatrix< T > &solVector, const std::vector< gsMatrix< T > > &fixedDoFs, gsMultiPatch< T > &displacement) const |
| Construct displacement from computed solution vector and fixed degrees of freedom.
|
|
virtual void | constructSolution (const gsMatrix< T > &solVector, const std::vector< gsMatrix< T > > &fixedDoFs, gsMultiPatch< T > &displacement, gsMultiPatch< T > &pressure) const |
| Construct displacement and pressure from computed solution vector and fixed degrees of freedom.
|
|
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.
|
|
virtual void | eliminateFixedDofs () |
| Eliminates new Dirichelt degrees of fredom.
|
|
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...
|
|
virtual void | getFixedDofs (index_t patch, boxSide side, gsMatrix< T > &ddofs) const |
|
| gsElasticityAssembler (const gsMultiPatch< T > &patches, const gsMultiBasis< T > &basis, const gsBoundaryConditions< T > &bconditions, const gsFunction< T > &body_force) |
| Constructor for displacement formulation.
|
|
| gsElasticityAssembler (const gsMultiPatch< T > &patches, const gsMultiBasis< T > &basisDisp, const gsMultiBasis< T > &basisPres, const gsBoundaryConditions< T > &bconditions, const gsFunction< T > &body_force) |
| Constructor of mixed formulation (displacement + pressure)
|
|
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.
|
|
virtual int | numDofs () const |
| Returns number of free degrees of freedom.
|
|
virtual index_t | numFixedDofs () const |
| get the size of the Dirichlet vector for elimination
|
|
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 () |
| Refresh routine to set dof-mappers.
|
|
const gsMatrix< T > & | rhs () const |
| Returns the left-hand side vector(s) ( multiple right hand sides possible )
|
|
virtual void | setFixedDofs (index_t patch, boxSide side, const gsMatrix< T > &ddofs, bool oneUnk=false) |
| Set Dirichet degrees of freedom on a given side of a given patch from a given matrix. More...
|
|
virtual void | setFixedDofs (const std::vector< gsMatrix< T > > &ddofs) |
| set all fixed degrees of freedom
|
|
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...
|
|