75 template <
short_t d,
class T,
bool bending>
79 typedef gsBoxTopology::ifContainer ifContainer;
176 this->_assembleDirichlet();
178 m_ddofs = m_space.fixedPart();
179 m_mapper = m_space.mapper();
206 template<
short_t _d,
bool _bending>
207 typename std::enable_if<(_d==3) && _bending, ThinShellAssemblerStatus>::type
assemble_impl();
210 template<
short_t _d,
bool _bending>
211 typename std::enable_if<!(_d==3 && _bending), ThinShellAssemblerStatus>::type
assemble_impl();
252 template<
short_t _d,
bool _bending>
253 typename std::enable_if<(_d==3) && _bending, ThinShellAssemblerStatus>::type
257 template<
short_t _d,
bool _bending>
258 typename std::enable_if<!(_d==3 && _bending), ThinShellAssemblerStatus>::type
262 template<
short_t _d,
bool _bending>
263 typename std::enable_if<(_d==3) && _bending, ThinShellAssemblerStatus>::type
267 template<
short_t _d,
bool _bending>
268 typename std::enable_if<!(_d==3 && _bending), ThinShellAssemblerStatus>::type
302 template<
short_t _d,
bool _bending>
303 typename std::enable_if<(_d==3) && _bending, ThinShellAssemblerStatus>::type
307 template<
short_t _d,
bool _bending>
308 typename std::enable_if<!(_d==3 && _bending), ThinShellAssemblerStatus>::type
317 std::vector<patchSide> patchSides(1);
325 template<
short_t _d,
bool _bending>
326 typename std::enable_if<(_d==3) && _bending, gsMatrix<T> >::type
330 template<
short_t _d,
bool _bending>
331 typename std::enable_if<!(_d==3 && _bending), gsMatrix<T> >::type
340 void setGeometry(
const gsMultiPatch<T> & patches)
350 this->setGeometry(patches);
358 gsMultiBasis<T> &
basis() {
return m_basis;}
371 m_spaceBasis = &spaceBasis;
400 void addStrongC0(
const gsBoxTopology::ifContainer & interfaces);
401 void addStrongC1(
const gsBoxTopology::ifContainer & interfaces);
402 void addWeakC0(
const gsBoxTopology::ifContainer & interfaces);
403 void addWeakC1(
const gsBoxTopology::ifContainer & interfaces);
404 void addUncoupled(
const gsBoxTopology::ifContainer & interfaces);
405 void initInterfaces();
497 void _defaultOptions();
500 void _assembleNeumann();
502 template <
bool _matrix>
504 template <
bool _matrix>
507 template <
bool _matrix>
509 template <
bool _matrix>
512 template <
bool _matrix>
513 void _assembleWeakBCs();
514 template <
bool _matrix>
517 template <
bool _matrix>
518 void _assembleWeakIfc();
519 template <
bool _matrix>
522 void _assembleDirichlet();
527 void _ifcTest(
const T tol = 1e-2);
532 typename std::enable_if<(_d==3), void>::type
533 _assembleNeumann_impl();
536 typename std::enable_if<!(_d==3), void>::type
537 _assembleNeumann_impl();
539 template<
short_t _d,
bool _matrix>
540 typename std::enable_if<(_d==3) && _matrix, void>::type
543 template<
short_t _d,
bool _matrix>
544 typename std::enable_if<(_d==3) && !_matrix, void>::type
547 template<
short_t _d,
bool _matrix>
548 typename std::enable_if<!(_d==3), void>::type
551 template<
short_t _d,
bool _matrix>
552 typename std::enable_if<(_d==3) && _matrix, void>::type
555 template<
short_t _d,
bool _matrix>
556 typename std::enable_if<(_d==3) && !_matrix, void>::type
559 template<
short_t _d,
bool _matrix>
560 typename std::enable_if<!(_d==3), void>::type
563 template<
short_t _d,
bool _matrix>
564 typename std::enable_if<(_d==3) && _matrix, void>::type
567 template<
short_t _d,
bool _matrix>
568 typename std::enable_if<(_d==3) && !_matrix, void>::type
571 template<
short_t _d,
bool _matrix>
572 typename std::enable_if<!(_d==3), void>::type
575 template<
short_t _d,
bool _matrix>
576 typename std::enable_if<(_d==3) && _matrix, void>::type
579 template<
short_t _d,
bool _matrix>
580 typename std::enable_if<(_d==3) && !_matrix, void>::type
583 template<
short_t _d,
bool _matrix>
584 typename std::enable_if<!(_d==3), void>::type
587 template<
short_t _d,
bool _matrix>
588 typename std::enable_if<(_d==3) && _matrix, void>::type
589 _assembleWeakBCs_impl();
591 template<
short_t _d,
bool _matrix>
592 typename std::enable_if<(_d==3) && !_matrix, void>::type
593 _assembleWeakBCs_impl();
595 template<
short_t _d,
bool _matrix>
596 typename std::enable_if<!(_d==3) && _matrix, void>::type
597 _assembleWeakBCs_impl();
599 template<
short_t _d,
bool _matrix>
600 typename std::enable_if<!(_d==3) && !_matrix, void>::type
601 _assembleWeakBCs_impl();
603 template<
short_t _d,
bool _matrix>
604 typename std::enable_if<(_d==3) && _matrix, void>::type
607 template<
short_t _d,
bool _matrix>
608 typename std::enable_if<(_d==3) && !_matrix, void>::type
611 template<
short_t _d,
bool _matrix>
612 typename std::enable_if<!(_d==3) && _matrix, void>::type
615 template<
short_t _d,
bool _matrix>
616 typename std::enable_if<!(_d==3) && !_matrix, void>::type
619 template<
short_t _d,
bool _matrix>
620 typename std::enable_if<(_d==3) && _matrix, void>::type
621 _assembleWeakIfc_impl();
623 template<
short_t _d,
bool _matrix>
624 typename std::enable_if<(_d==3) && !_matrix, void>::type
625 _assembleWeakIfc_impl();
627 template<
short_t _d,
bool _matrix>
628 typename std::enable_if<!(_d==3) && _matrix, void>::type
629 _assembleWeakIfc_impl();
631 template<
short_t _d,
bool _matrix>
632 typename std::enable_if<!(_d==3) && !_matrix, void>::type
633 _assembleWeakIfc_impl();
635 template<
short_t _d,
bool _matrix>
636 typename std::enable_if<(_d==3) && _matrix, void>::type
639 template<
short_t _d,
bool _matrix>
640 typename std::enable_if<(_d==3) && !_matrix, void>::type
643 template<
short_t _d,
bool _matrix>
644 typename std::enable_if<!(_d==3) && _matrix, void>::type
647 template<
short_t _d,
bool _matrix>
648 typename std::enable_if<!(_d==3) && !_matrix, void>::type
687 mutable bool m_foundInd;
688 mutable bool m_pressInd;
692 mutable T m_alpha_d_bc,m_alpha_r_bc,m_alpha_d_ifc,m_alpha_r_ifc;
695 mutable ifContainer m_inPlane, m_outPlane, m_uncoupled, m_strongC0, m_weakC0, m_strongC1, m_weakC1, m_unassigned;
700 #ifdef GISMO_WITH_PYBIND11
705 void pybind11_init_gsThinShellAssembler2(pybind11::module &m);
706 void pybind11_init_gsThinShellAssembler3(pybind11::module &m);
707 void pybind11_init_gsThinShellAssembler3nb(pybind11::module &m);
709 #endif // GISMO_WITH_PYBIND11
719 class gsThinShellAssemblerBase
1007 virtual void addStrongC0(
const gsBoxTopology::ifContainer & interfaces) = 0;
1008 virtual void addStrongC1(
const gsBoxTopology::ifContainer & interfaces) = 0;
1009 virtual void addWeakC0(
const gsBoxTopology::ifContainer & interfaces) = 0;
1010 virtual void addWeakC1(
const gsBoxTopology::ifContainer & interfaces) = 0;
1011 virtual void addUncoupled(
const gsBoxTopology::ifContainer & interfaces) = 0;
1012 virtual void initInterfaces() = 0;
1077 virtual void plotSolution(std::string
string,
const gsMatrix<T> & solVector) = 0;
1086 #ifdef GISMO_WITH_PYBIND11
1091 void pybind11_init_gsThinShellAssemblerBase(pybind11::module &m);
1092 void pybind11_enum_gsThinShellAssemblerStatus(pybind11::module &m);
1094 #endif // GISMO_WITH_PYBIND11
1103 #ifndef GISMO_BUILD_LIB
1104 #include GISMO_HPP_HEADER(gsThinShellAssembler.hpp)
virtual ThinShellAssemblerStatus assemble()=0
Assembles the linear system and corresponding right-hand side.
void constructStress(const gsFunctionSet< T > &deformed, gsPiecewiseFunction< T > &result, stress_type::type type)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2752
virtual void setPressure(const gsFunction< T > &pressure)=0
Registers a scalar function acting as pressure (in normal direction) in normal direction.
const gsPointLoads< T > & getPointMass()
Gets the registered point masses.
Definition: gsThinShellAssembler.h:163
Definition: gsExprAssembler.h:30
std::enable_if<(_d==3)&&_bending, ThinShellAssemblerStatus >::type assembleVector_impl(const gsFunctionSet< T > &deformed, const bool homogenize)
Implementation of assembleVector for surfaces (3D)
Definition: gsThinShellAssembler.hpp:1965
gsMultiBasis< T > & getBasis()
Gets the basis.
Definition: gsThinShellAssembler.h:359
ThinShellAssemblerStatus
Definition: gsThinShellAssembler.h:53
T getArea(const gsFunctionSet< T > &geometry)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2463
#define GISMO_NO_IMPLEMENTATION
Definition: gsDebug.h:129
virtual gsMatrix< T > fullSolutionVector(const gsMatrix< T > &vector) const =0
Reconstruct the solution vector based on the currently stored boundary conditions (thus the mapper)...
gsExprHelper< T >::geometryMap geometryMap
Geometry map type.
Definition: gsExprAssembler.h:58
Struct which represents a certain side of a patch.
Definition: gsBoundary.h:231
gsMatrix< T > boundaryForce(const gsFunctionSet< T > &deformed, const patchSide &ps) const
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:315
gsDofMapper getMapper()
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:467
ThinShellAssemblerStatus assembleMatrix(const gsFunctionSet< T > &deformed)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:1676
virtual const gsPointLoads< T > & getPointMass()=0
Gets the registered point masses.
virtual const gsFunctionSet< T > & getSpaceBasis()=0
Get the basis that is used for assembly (but not for quadrature!)
void _initialize()
Initializes the method.
Definition: gsThinShellAssembler.hpp:226
void setPointMass(const gsPointLoads< T > &pMass)
Registers a gsPointLoads object for a point mass acting on the shell. The point masss must be 1-dimen...
Definition: gsThinShellAssembler.h:162
gsMultiPatch< T > _constructSolution(const gsMatrix< T > &solVector, const gsMultiPatch< T > &undeformed) const
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2434
virtual const gsMultiPatch< T > & geometry() const =0
Returns the undeformed geometry.
gsMaterialMatrixContainer< T > materials() const
Returns the material matrices used in the class.
Definition: gsThinShellAssembler.h:389
T interfaceErrorC0(const gsFunctionSet< T > &deformed)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:470
This class serves as the evaluator of material matrices, based on gsMaterialMatrixBase.
Definition: gsMaterialMatrixContainer.h:33
std::enable_if<(_d==3)&&_bending, ThinShellAssemblerStatus >::type assemble_impl()
Specialisation of assemble() for surfaces (3D)
Definition: gsThinShellAssembler.hpp:1517
virtual void setFoundation(const gsFunction< T > &foundation)=0
Registers a stiffness function to be used for handling an elastic foundation, only relevant for 3D sh...
virtual gsMultiPatch< T > constructMultiPatch(const gsMatrix< T > &solVector) const =0
Construct solution field from computed solution vector solVector and returns a multipatch.
virtual void constructStress(const gsFunctionSet< T > &deformed, gsPiecewiseFunction< T > &result, stress_type::type type)=0
Construct Cauchy stress tensor for visualization.
T interfaceErrorNormal(const gsFunctionSet< T > &deformed)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:480
S give(S &x)
Definition: gsMemory.h:266
Assembly failed due to an error in the expression (e.g. overflow)
Defines the coupling type over interfaces.
Definition: gsThinShellAssembler.h:33
#define index_t
Definition: gsConfig.h:32
Provides a simple container for point loads on multi-patch domains.
A function from a n-dimensional domain to an m-dimensional image.
Definition: gsFunction.h:59
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)
Definition: gsThinShellAssembler.hpp:2265
index_t numDofs() const
Returns the number of degrees of freedom (after initialization)
Definition: gsExprAssembler.h:85
gsMatrix< T > computePrincipalStresses(const gsMatrix< T > &points, const gsFunctionSet< T > &deformed, const T z=0)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2720
ThinShellAssemblerStatus assembleMass(const bool lumped=false)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:1415
virtual gsExprAssembler< T > assembler()=0
Returns the internal expression assembler.
space trialSpace(const index_t id) const
Definition: gsExprAssembler.h:232
gsExprAssembler< T > assembler()
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:153
void setFoundation(const gsFunction< T > &foundation)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:166
const gsMatrix< T > & rhs() const
Returns a reference to the right-hand side vector that is assembled.
Definition: gsThinShellAssembler.h:396
gsThinShellAssemblerBase()
Default deconstructor.
Definition: gsThinShellAssembler.h:728
Maintains a mapping from patch-local dofs to global dof indices and allows the elimination of individ...
Definition: gsDofMapper.h:68
virtual gsMultiPatch< T > constructSolution(const gsMatrix< T > &solVector) const =0
Construct deformed shell geometry from computed solution vector solVector and returns a multipatch...
This class defines the base class for material matrices.
Definition: gsMaterialMatrixBase.h:32
T interfaceErrorGaussCurvature(const gsFunctionSet< T > &deformed)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:485
gsVector< T > constructSolutionVector(const gsMultiPatch< T > &deformed) const
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2654
virtual T interfaceErrorGaussCurvature(const gsFunctionSet< T > &deformed)=0
Returns the Gaussian curvature error over the interface.
T getElasticEnergy(const gsFunctionSet< T > &deformed)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2496
gsMultiPatch< T > constructMultiPatch(const gsMatrix< T > &solVector) const
Construct solution field from computed solution vector solVector and returns a multipatch.
Definition: gsThinShellAssembler.hpp:2580
ThinShellAssemblerStatus assemblePressureVector(const gsFunction< T > &pressFun)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2150
void projectL2_into(const gsFunction< T > &fun, gsMatrix< T > &result)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2789
const gsMatrix< T > & rhs() const
Returns the right-hand side vector(s)
Definition: gsExprAssembler.h:129
Generic expressions evaluator.
gsMatrix< T > boundaryForce(const gsFunctionSet< T > &deformed, const std::vector< patchSide > &patchSides) const
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2257
const gsSparseMatrix< T > & matrix() const
Returns the left-hand global matrix.
Definition: gsExprAssembler.h:116
virtual void setUndeformed(const gsMultiPatch< T > &patches)=0
Overwrites the undeformed geometry.
virtual void setPointLoads(const gsPointLoads< T > &pLoads)=0
Registers a gsPointLoads object for point loads acting on the shell.
void setBasis(const gsMultiBasis< T > &basis)
Overwrites the basis.
Definition: gsThinShellAssembler.h:361
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)
Definition: gsThinShellAssembler.h:269
ThinShellAssemblerStatus assembleFoundation()
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:1473
void setPressure(const gsFunction< T > &pressure)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:169
const gsMultiBasis< T > & basis() const
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:355
Holds a set of patch-wise bases and their topology information.
Definition: gsMultiBasis.h:36
virtual gsMultiPatch< T > constructDisplacement(const gsMatrix< T > &solVector) const =0
Construct displacement field from computed solution vector solVector and returns a multipatch...
void updateBCs(const gsBoundaryConditions< T > &bconditions)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:172
T interfaceErrorG1(const gsFunctionSet< T > &deformed)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:475
gsSparseMatrix< T > & massMatrix()
Returns a reference to the mass matrix that is assembled.
Definition: gsThinShellAssembler.h:394
ThinShellAssemblerStatus assembleVector(const gsFunctionSet< T > &deformed, const bool homogenize=true)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:1957
virtual ThinShellAssemblerStatus assembleMass(const bool lumped=false)=0
Assembles the mass matrix (including density and thickness!); if lumped=true, a lumped mass matrix wi...
gsMultiPatch< T > constructDisplacement(const gsMatrix< T > &solVector) const
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2636
Assembles the system matrix and vectors for 2D and 3D shell problems, including geometric nonlinearit...
Definition: gsThinShellAssembler.h:76
virtual T getArea(const gsFunctionSet< T > &geometry)=0
Returns the area of geometry.
gsMaterialMatrixBase< T > * material(const index_t p) const
Returns the material matrix on patch p used in the class.
Definition: gsThinShellAssembler.h:390
void setPointLoads(const gsPointLoads< T > &pLoads)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:160
T deformationNorm(const gsMultiPatch< T > &deformed, const gsMultiPatch< T > &original)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2852
virtual T getElasticEnergy(const gsFunctionSet< T > &deformed)=0
Returns the elastic energy norm, i.e. norm = 0.5 * u'*F_int.
void setUndeformed(const gsMultiPatch< T > &patches)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:348
virtual index_t numDofs() const =0
Returns the number of degrees of freedom in the assembler.
virtual gsMaterialMatrixContainer< T > materials() const =0
Returns the material matrices used in the class.
Definition: gsDirichletValues.h:23
Class containing a set of points on a multi-patch isogeometric domain, together with boundary conditi...
Definition: gsPointLoads.h:64
Interface for the set of functions defined on a domain (the total number of functions in the set equa...
Definition: gsFuncData.h:23
virtual ThinShellAssemblerStatus assembleVector(const gsFunctionSet< T > &deformed, const bool homogenize=true)=0
Assembles the residual vector.
virtual gsSparseMatrix< T > & massMatrix()=0
Returns a reference to the mass matrix that is assembled.
virtual void setPointMass(const gsPointLoads< T > &pLoads)=0
Registers a gsPointLoads object for a point mass acting on the shell. The point masss must be 1-dimen...
virtual ThinShellAssemblerStatus status() const =0
Returns the assembler status.
index_t numDofs() const
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:186
Container class for a set of geometry patches and their topology, that is, the interface connections ...
Definition: gsMultiPatch.h:33
virtual ~gsThinShellAssemblerBase()
Default empty constructor.
Definition: gsThinShellAssembler.h:731
Generic evaluator of isogeometric expressions.
Definition: gsExprEvaluator.h:38
Base class for the gsThinShellAssembler.
Definition: gsThinShellAssembler.h:61
void setSpaceBasis(const gsFunctionSet< T > &spaceBasis)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:369
ThinShellAssemblerStatus assembleFoundationVector(const gsFunctionSet< T > &deformed)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2227
virtual void setOptions(gsOptionList &options)=0
Sets the options of the assembler.
Assembly failed due to a dimension error.
virtual const gsSparseMatrix< T > & matrix() const =0
Returns a reference to the system matrix that is assembled.
virtual gsDofMapper getMapper()=0
Returns the gsDofMapper.
virtual T interfaceErrorMeanCurvature(const gsFunctionSet< T > &deformed)=0
Returns the mean curvature error over the interface.
type
Definition: gsThinShellFunctions.h:40
virtual gsMatrix< T > computePrincipalStresses(const gsMatrix< T > &points, const gsFunctionSet< T > &deformed, const T z=0)=0
Compute the principal stretches in points given a deformed geometry. Optionally, the stretches can be...
void setOptions(gsOptionList &options)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:212
virtual ThinShellAssemblerStatus assemblePressureVector(const gsFunction< T > &pressFun)=0
Assembles the pressure contribution in the system vector (linear)
virtual void projectL2_into(const gsFunction< T > &fun, gsMatrix< T > &result)=0
Projects function fun on the basis and geometry stored in the class and returns the coefficients in r...
const gsMultiPatch< T > & geometry() const
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:338
const gsPointLoads< T > & getPointLoads()
Gets the registered point loads.
Definition: gsThinShellAssembler.h:161
gsThinShellAssembler(gsThinShellAssembler &&other)
Move constructor.
Definition: gsThinShellAssembler.h:138
gsThinShellAssembler(const gsThinShellAssembler &other)
Copy constructor (makes deep copy)
Definition: gsThinShellAssembler.h:132
ThinShellAssemblerStatus status() const
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:189
gsThinShellAssembler & operator=(const gsThinShellAssembler &other)
Assignment operator.
Definition: gsThinShellAssembler.hpp:84
ThinShellAssemblerStatus assemblePressureMatrix(const gsFunction< T > &pressFun)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2088
virtual void setSpaceBasis(const gsFunctionSet< T > &spaceBasis)=0
Set the basis that is used for assembly (but not for quadrature!)
virtual T getDisplacementNorm(const gsFunctionSet< T > &deformed)=0
Returns the displacement norm, i.e. norm = sqrt(u'*u/area)
Class containing a set of boundary conditions.
Definition: gsBoundaryConditions.h:341
virtual T interfaceErrorG1(const gsFunctionSet< T > &deformed)=0
Returns the G1 error over the interface.
gsMatrix< T > computePrincipalStretches(const gsMatrix< T > &points, const gsFunctionSet< T > &deformed, const T z=0)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2690
virtual void updateBCs(const gsBoundaryConditions< T > &bconditions)=0
Overwrites the boundary conditions.
T getDisplacementNorm(const gsFunctionSet< T > &deformed)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2477
ThinShellAssemblerStatus assemble()
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:1502
Provides a container for material matrices for thin shells.
Provides a base class for material matrices.
gsMatrix< T > projectL2(const gsFunction< T > &fun)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2842
virtual gsMatrix< T > boundaryForce(const gsFunctionSet< T > &deformed, const std::vector< patchSide > &patchSides) const =0
Computes the force on a set of boundaries.
virtual ThinShellAssemblerStatus assembleMatrix(const gsFunctionSet< T > &deformed)=0
Assembles the tangential stiffness matrix (nonlinear)
virtual gsMatrix< T > projectL2(const gsFunction< T > &fun)=0
Projects function fun on the basis and geometry stored in the class and returns the coefficients as a...
gsExprHelper< T >::element element
Current element.
Definition: gsExprAssembler.h:57
virtual ThinShellAssemblerStatus assemblePressureMatrix(const gsFunction< T > &pressFun)=0
Assembles the pressure contribution in the system matrix (linear)
virtual const gsMatrix< T > & rhs() const =0
Returns a reference to the right-hand side vector that is assembled.
Struct which represents an interface between two patches.
Definition: gsBoundary.h:649
virtual gsMatrix< T > computePrincipalStretches(const gsMatrix< T > &points, const gsFunctionSet< T > &deformed, const T z=0)=0
Compute the principal stretches in points given a deformed geometry. Optionally, the stretches can be...
virtual ThinShellAssemblerStatus assembleFoundation()=0
Assembles the elastic foundation matrix.
Class which holds a list of parameters/options, and provides easy access to them. ...
Definition: gsOptionList.h:32
T interfaceErrorMeanCurvature(const gsFunctionSet< T > &deformed)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:490
virtual gsVector< T > constructSolutionVector(const gsMultiPatch< T > &deformed) const =0
Reconstruct the solution vector based on the currently stored boundary conditions (thus the mapper)...
virtual gsMaterialMatrixBase< T > * material(const index_t p) const =0
Returns the material matrix on patch p used in the class.
A function depending on an index i, typically referring to a patch/sub-domain. On each patch a differ...
Definition: gsPiecewiseFunction.h:28
gsThinShellAssembler()
Constructor for te shell assembler.
Definition: gsThinShellAssembler.h:129
gsMatrix< T > fullSolutionVector(const gsMatrix< T > &vector) const
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2642
gsMultiPatch< T > constructSolution(const gsMatrix< T > &solVector) const
Construct deformed shell geometry from computed solution vector solVector and returns a multipatch...
Definition: gsThinShellAssembler.hpp:2445
expr::gsFeSolution< T > solution
Solution type.
Definition: gsExprAssembler.h:61
virtual T interfaceErrorC0(const gsFunctionSet< T > &deformed)=0
Returns the C1 error over the interface.
gsDofMapper getMapper() const
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:202
std::enable_if<(_d==3)&&_bending, ThinShellAssemblerStatus >::type assembleMatrix_impl(const gsFunctionSet< T > &deformed)
Implementation of assembleMatrix for surfaces (3D)
Definition: gsThinShellAssembler.hpp:1684
virtual void setBasis(const gsMultiBasis< T > &basis)=0
Overwrites the basis.
gsOptionList & options()
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:150
Generic expressions matrix assembly.
virtual gsOptionList & options()=0
Returns the options of the assembler.
virtual void homogenizeDirichlet()=0
Sets the Dirichlet BCs to zero.
virtual const gsMultiBasis< T > & getBasis()=0
Gets the basis.
Provides evaluation function for stresses.
gsBoxTopology::ifContainer ifContainer
Default deconstructor.
Definition: gsThinShellAssembler.h:723
const gsFunctionSet< T > & getSpaceBasis()
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.h:199
virtual T interfaceErrorNormal(const gsFunctionSet< T > &deformed)=0
Returns the normal vector error over the interface.
virtual const gsPointLoads< T > & getPointLoads()=0
Gets the registered point loads.
void plotSolution(std::string string, const gsMatrix< T > &solVector)
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:2520
void homogenizeDirichlet()
See gsThinShellAssemblerBase for details.
Definition: gsThinShellAssembler.hpp:1293
const gsSparseMatrix< T > & matrix() const
Returns a reference to the system matrix that is assembled.
Definition: gsThinShellAssembler.h:393