G+Smo
24.08.0
Geometry + Simulation Modules
|
Assembles the system matrix and vectors for 2D and 3D shell problems, including geometric nonlinearities and loading nonlinearities. The material nonlinearities are handled by the gsMaterialMatrixIntegrate class.
d | The dimension (2 = planar, 3 = surface) |
T | Real type |
bending | True: Assemble bending terms; False: Do not assemble bending terms |
Public Member Functions | |
ThinShellAssemblerStatus | assemble () |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assemble (const gsFunctionSet< T > &deformed, const bool matrix=true, const bool homogenize=true) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assemble (const gsMatrix< T > &solVector, const bool matrix=true, const bool homogenize=true) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assembleFoundation () |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assembleFoundationVector (const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assembleFoundationVector (const gsFunction< T > &foundFun, const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assembleMass (const bool lumped=false) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assembleMatrix (const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assembleMatrix (const gsMatrix< T > &solVector) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assembleMatrix (const gsFunctionSet< T > &deformed, const gsFunctionSet< T > &previous, gsMatrix< T > &update) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assembleMatrix (const gsMatrix< T > &solVector, const gsMatrix< T > &prevVector) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assemblePressureMatrix (const gsFunction< T > &pressFun) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assemblePressureMatrix (const T pressure) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assemblePressureMatrix (const gsFunction< T > &pressFun, const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assemblePressureMatrix (const T pressure, const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assemblePressureVector (const gsFunction< T > &pressFun) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assemblePressureVector (const T pressure) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assemblePressureVector (const gsFunction< T > &pressFun, const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assemblePressureVector (const T pressure, const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assemblePressureVector (const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
gsExprAssembler< T > | assembler () |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assembleVector (const gsFunctionSet< T > &deformed, const bool homogenize=true) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | assembleVector (const gsMatrix< T > &solVector, const bool homogenize=true) |
See gsThinShellAssemblerBase for details. | |
const gsMultiBasis< T > & | basis () const |
See gsThinShellAssemblerBase for details. | |
gsMatrix< T > | boundaryForce (const gsFunctionSet< T > &deformed, const std::vector< patchSide > &patchSides) const |
See gsThinShellAssemblerBase for details. | |
gsMatrix< T > | boundaryForce (const gsFunctionSet< T > &deformed, const patchSide &ps) const |
See gsThinShellAssemblerBase for details. | |
gsMatrix< T > | computePrincipalStresses (const gsMatrix< T > &points, const gsFunctionSet< T > &deformed, const T z=0) |
See gsThinShellAssemblerBase for details. | |
gsMatrix< T > | computePrincipalStretches (const gsMatrix< T > &points, const gsFunctionSet< T > &deformed, const T z=0) |
See gsThinShellAssemblerBase for details. | |
gsMultiPatch< T > | constructDisplacement (const gsMatrix< T > &solVector) const |
See gsThinShellAssemblerBase for details. | |
void | constructDisplacement (const gsMatrix< T > &solVector, gsMultiPatch< T > &deformed) const |
See gsThinShellAssemblerBase for details. | |
gsMultiPatch< T > | constructMultiPatch (const gsMatrix< T > &solVector) const |
Construct solution field from computed solution vector solVector and returns a multipatch. | |
gsMultiPatch< T > | constructSolution (const gsMatrix< T > &solVector) const |
Construct deformed shell geometry from computed solution vector solVector and returns a multipatch. | |
void | constructSolution (const gsMatrix< T > &solVector, gsMultiPatch< T > &deformed) const |
See gsThinShellAssemblerBase for details. | |
gsVector< T > | constructSolutionVector (const gsMultiPatch< T > &deformed) const |
See gsThinShellAssemblerBase for details. | |
void | constructStress (const gsFunctionSet< T > &deformed, gsPiecewiseFunction< T > &result, stress_type::type type) |
See gsThinShellAssemblerBase for details. | |
void | constructStress (const gsFunctionSet< T > &original, const gsFunctionSet< T > &deformed, gsPiecewiseFunction< T > &result, stress_type::type type) |
See gsThinShellAssemblerBase for details. | |
T | deformationNorm (const gsMultiPatch< T > &deformed, const gsMultiPatch< T > &original) |
See gsThinShellAssemblerBase for details. | |
gsMatrix< T > | fullSolutionVector (const gsMatrix< T > &vector) const |
See gsThinShellAssemblerBase for details. | |
const gsMultiPatch< T > & | geometry () const |
See gsThinShellAssemblerBase for details. | |
T | getArea (const gsFunctionSet< T > &geometry) |
See gsThinShellAssemblerBase for details. | |
gsMultiBasis< T > & | getBasis () |
Gets the basis. | |
T | getDisplacementNorm (const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
T | getElasticEnergy (const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
gsDofMapper | getMapper () const |
See gsThinShellAssemblerBase for details. | |
gsDofMapper | getMapper () |
See gsThinShellAssemblerBase for details. | |
const gsPointLoads< T > & | getPointLoads () |
Gets the registered point loads. | |
const gsPointLoads< T > & | getPointMass () |
Gets the registered point masses. | |
const gsFunctionSet< T > & | getSpaceBasis () |
See gsThinShellAssemblerBase for details. | |
gsThinShellAssembler (const gsMultiPatch< T > &patches, const gsMultiBasis< T > &basis, const gsBoundaryConditions< T > &bconditions, const gsFunction< T > &surface_force, const gsMaterialMatrixContainer< T > &materialmatrices) | |
Constructor for the shell assembler. More... | |
gsThinShellAssembler (const gsMultiPatch< T > &patches, const gsMultiBasis< T > &basis, const gsBoundaryConditions< T > &bconditions, const gsFunction< T > &surface_force, gsMaterialMatrixBase< T > *materialmatrix) | |
Constructor for the shell assembler. More... | |
gsThinShellAssembler () | |
Constructor for te shell assembler. More... | |
gsThinShellAssembler (const gsThinShellAssembler &other) | |
Copy constructor (makes deep copy) | |
gsThinShellAssembler (gsThinShellAssembler &&other) | |
Move constructor. | |
void | homogenizeDirichlet () |
See gsThinShellAssemblerBase for details. | |
T | interfaceErrorC0 (const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
T | interfaceErrorG1 (const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
T | interfaceErrorGaussCurvature (const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
T | interfaceErrorMeanCurvature (const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
T | interfaceErrorNormal (const gsFunctionSet< T > &deformed) |
See gsThinShellAssemblerBase for details. | |
gsSparseMatrix< T > & | massMatrix () |
Returns a reference to the mass matrix that is assembled. | |
gsMaterialMatrixBase< T > * | material (const index_t p) const |
Returns the material matrix on patch p used in the class. | |
gsMaterialMatrixContainer< T > | materials () const |
Returns the material matrices used in the class. | |
const gsSparseMatrix< T > & | matrix () const |
Returns a reference to the system matrix that is assembled. | |
index_t | numDofs () const |
See gsThinShellAssemblerBase for details. | |
gsThinShellAssembler & | operator= (const gsThinShellAssembler &other) |
Assignment operator. | |
gsThinShellAssembler & | operator= (gsThinShellAssembler &&other) |
Move assignment operator. | |
gsOptionList & | options () |
See gsThinShellAssemblerBase for details. | |
void | plotSolution (std::string string, const gsMatrix< T > &solVector) |
See gsThinShellAssemblerBase for details. | |
gsMatrix< T > | projectL2 (const gsFunction< T > &fun) |
See gsThinShellAssemblerBase for details. More... | |
void | projectL2_into (const gsFunction< T > &fun, gsMatrix< T > &result) |
See gsThinShellAssemblerBase for details. | |
void | projectL2_into (const gsFunction< T > &fun, gsMultiPatch< T > &result) |
See gsThinShellAssemblerBase for details. More... | |
const gsMatrix< T > & | rhs () const |
Returns a reference to the right-hand side vector that is assembled. | |
void | setBasis (const gsMultiBasis< T > &basis) |
Overwrites the basis. More... | |
void | setFoundation (const gsFunction< T > &foundation) |
See gsThinShellAssemblerBase for details. | |
void | setOptions (gsOptionList &options) |
See gsThinShellAssemblerBase for details. | |
void | setPointLoads (const gsPointLoads< T > &pLoads) |
See gsThinShellAssemblerBase for details. | |
void | setPointMass (const gsPointLoads< T > &pMass) |
Registers a gsPointLoads object for a point mass acting on the shell. The point masss must be 1-dimensional. | |
void | setPressure (const gsFunction< T > &pressure) |
See gsThinShellAssemblerBase for details. | |
void | setSpaceBasis (const gsFunctionSet< T > &spaceBasis) |
See gsThinShellAssemblerBase for details. | |
void | setUndeformed (const gsMultiPatch< T > &patches) |
See gsThinShellAssemblerBase for details. | |
ThinShellAssemblerStatus | status () const |
See gsThinShellAssemblerBase for details. | |
void | updateBCs (const gsBoundaryConditions< T > &bconditions) |
See gsThinShellAssemblerBase for details. | |
Protected Member Functions | |
gsMultiPatch< T > | _constructSolution (const gsMatrix< T > &solVector, const gsMultiPatch< T > &undeformed) const |
See gsThinShellAssemblerBase for details. | |
void | _initialize () |
Initializes the method. | |
Private Member Functions | |
template<short_t _d, bool _bending> | |
std::enable_if<(_d==3)&&_bending, ThinShellAssemblerStatus > ::type | assemble_impl () |
Specialisation of assemble() for surfaces (3D) More... | |
template<short_t _d, bool _bending> | |
std::enable_if<!(_d==3 &&_bending), ThinShellAssemblerStatus > ::type | assemble_impl () |
Specialisation of assemble() for planar geometries (2D) | |
template<short_t _d, bool _bending> | |
std::enable_if<(_d==3)&&_bending, ThinShellAssemblerStatus > ::type | assembleMatrix_impl (const gsFunctionSet< T > &deformed) |
Implementation of assembleMatrix for surfaces (3D) | |
template<short_t _d, bool _bending> | |
std::enable_if<!(_d==3 &&_bending), ThinShellAssemblerStatus > ::type | assembleMatrix_impl (const gsFunctionSet< T > &deformed) |
Implementation of assembleMatrix for planar geometries (2D) | |
template<short_t _d, bool _bending> | |
std::enable_if<(_d==3)&&_bending, ThinShellAssemblerStatus > ::type | assembleMatrix_impl (const gsFunctionSet< T > &deformed, const gsFunctionSet< T > &previous, gsMatrix< T > &update) |
Implementation of assembleMatrix for surfaces (3D) | |
template<short_t _d, bool _bending> | |
std::enable_if<!(_d==3 &&_bending), ThinShellAssemblerStatus > ::type | assembleMatrix_impl (const gsFunctionSet< T > &deformed, const gsFunctionSet< T > &previous, gsMatrix< T > &update) |
Implementation of assembleMatrix for planar geometries (2D) | |
template<short_t _d, bool _bending> | |
std::enable_if<(_d==3)&&_bending, ThinShellAssemblerStatus > ::type | assembleVector_impl (const gsFunctionSet< T > &deformed, const bool homogenize) |
Implementation of assembleVector for surfaces (3D) | |
template<short_t _d, bool _bending> | |
std::enable_if<!(_d==3 &&_bending), ThinShellAssemblerStatus > ::type | assembleVector_impl (const gsFunctionSet< T > &deformed, const bool homogenize) |
Implementation of assembleVector for planar geometries (2D) | |
template<short_t _d, bool _bending> | |
std::enable_if<(_d==3)&&_bending, gsMatrix< T > >::type | boundaryForce_impl (const gsFunctionSet< T > &deformed, const std::vector< patchSide > &patchSides) const |
Implementation of the boundary force vector for surfaces (3D) | |
template<short_t _d, bool _bending> | |
std::enable_if<!(_d==3 &&_bending), gsMatrix< T > >::type | boundaryForce_impl (const gsFunctionSet< T > &deformed, const std::vector< patchSide > &patchSides) const |
Implementation of the boundary force vector for planar geometries (2D) | |
gsThinShellAssembler | ( | const gsMultiPatch< T > & | patches, |
const gsMultiBasis< T > & | basis, | ||
const gsBoundaryConditions< T > & | bconditions, | ||
const gsFunction< T > & | surface_force, | ||
const gsMaterialMatrixContainer< T > & | materialmatrices | ||
) |
Constructor for the shell assembler.
[in] | patches | The geometry |
[in] | basis | The basis |
[in] | bconditions | The boundary condition |
[in] | surface_force | The surface force |
materialmatrix | The material matrix container |
gsThinShellAssembler | ( | const gsMultiPatch< T > & | patches, |
const gsMultiBasis< T > & | basis, | ||
const gsBoundaryConditions< T > & | bconditions, | ||
const gsFunction< T > & | surface_force, | ||
gsMaterialMatrixBase< T > * | materialmatrix | ||
) |
Constructor for the shell assembler.
[in] | patches | The geometry |
[in] | basis | The basis |
[in] | bconditions | The boundary condition |
[in] | surface_force | The surface force |
materialmatrix | The material matrix class |
|
inline |
Constructor for te shell assembler.
[in] | patches | The geometry |
[in] | basis | The basis |
[in] | bconditions | The boundary condition |
[in] | surface_force | The surface force |
materialmatrix | The material matrix classDefault empty constructor |
|
private |
Specialisation of assemble() for surfaces (3D)
Assembles the Kirchhoff-Love shell equations including the bending terms. Optionally, pressure is included via p * n * u Optionally, foundation stiffness is included via k_x v_x v_x + k_y v_y v_y + k_z v_z v_z Since the variational energy of the foundation force k_i u_i is equal to k_i u_i v_i where i denotes any direction, u_i are displacemets and v_i are spaces.
|
virtual |
See gsThinShellAssemblerBase for details.
todo: make a projection with BCs? todo: test
Implements gsThinShellAssemblerBase< T >.
|
virtual |
See gsThinShellAssemblerBase for details.
todo: make a projection with BCs? todo: test
Implements gsThinShellAssemblerBase< T >.
|
inlinevirtual |