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 bool | assemble (const gsMatrix< T > &solutionVector, const std::vector< gsMatrix< T > > &fixedDoFs) |
| |
|
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.
|
| |
|
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 | 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 | 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 > &, gsMultiPatch< T > &, const gsVector< index_t > &) 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.
|
| |
| virtual void | constructSolution (const gsMatrix< T > &, gsMultiPatch< T > &, short_t=0) const |
| | Construct solution from computed solution vector for a single unknows.
|
| |
|
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 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)
|
| |
| 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)
|
| |
|
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.
|
| |
|
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 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.
|
| |
|
const gsSparseMatrix< T > & | matrix () const |
| | Returns the left-hand global matrix.
|
| |
|
gsMultiBasis< T > & | multiBasis (index_t k=0) |
| | Return the multi-basis. Note: if the basis is altered, then refresh() should be called.
|
| |
|
const gsMultiBasis< T > & | multiBasis (index_t k=0) const |
| | Return the multi-basis.
|
| |
|
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 BElementVisitor > |
| void | push (const BElementVisitor &visitor, const boundary_condition< T > &BC) |
| | Applies the BElementVisitor to the boundary condition BC.
|
| |
|
template<class ElementVisitor > |
| void | push (const ElementVisitor &visitor) |
| | Iterates over all elements of the domain and applies the ElementVisitor.
|
| |
|
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 )
|
| |
| 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
|
| |
|
virtual void | setFixedDofs (const std::vector< gsMatrix< T > > &ddofs) |
| | set all fixed degrees of freedom
|
| |
| 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.
|
| |
| void | setFixedDofVector (gsMatrix< T > vals, short_t unk=0) |
| | the user can manually set the dirichlet Dofs for a given patch and unknown.
|
| |
|
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.
|
| |
|
|
| template<class ElementVisitor > |
| void | apply (ElementVisitor &visitor, size_t patchIndex=0, boxSide side=boundary::none) |
| | Generic assembly routine for volume or boundary integrals.
|
| |
|
template<class InterfaceVisitor > |
| void | apply (InterfaceVisitor &visitor, const boundaryInterface &bi) |
| | Generic assembly routine for patch-interface integrals.
|
| |
|
virtual void | assemble () |
| | Main assemble routine, to be implemented in derived classes.
|
| |
|
virtual void | assemble (bool) |
| | assembly procedure for linear problems
|
| |
| virtual bool | assemble (const gsMatrix< T > &solutionVector, const std::vector< gsMatrix< T > > &fixedDDoFs)=0 |
| |
|
virtual void | assemble (const gsMultiPatch< T > &) |
| | Main non-linear assemble routine with input from current solution.
|
| |
| virtual void | assemble (const gsMultiPatch< T > &displacement) |
| |
| virtual void | assemble (const gsMultiPatch< T > &displacement, const gsMultiPatch< T > &pressure) |
| |
| void | computeDirichletDofsIntpl (const gsDofMapper &mapper, const gsMultiBasis< T > &mbasis, const short_t unk_=0) |
| | calculates the values of the eliminated dofs based on Interpolation.
|
| |
| void | computeDirichletDofsL2Proj (const gsDofMapper &mapper, const gsMultiBasis< T > &mbasis, const short_t unk_=0) |
| | calculates the values of the eliminated dofs based on L2 Projection.
|
| |
|
virtual void | reserve () |
| | a custom reserve function to allocate memory for the sparse matrix
|
| |
|
void | scalarProblemGalerkinRefresh () |
| | A prototype of the refresh function for a "standard" scalar problem. Creats one mapper based on the set options and initializes the sparse system (without allocating memory.
|
| |