|
| template<typename VolumeLoad = utils::LoadDefault, typename NeumannBoundaryLoad = utils::LoadDefault> |
| | KirchhoffLoveShell (const Basis &globalBasis, const typename LocalView::Element &element, double emod, double nu, double thickness, VolumeLoad p_volumeLoad={}, const BoundaryPatch< GridView > *p_neumannBoundary=nullptr, NeumannBoundaryLoad p_neumannBoundaryLoad={}) |
| | Constructor for the KirchhoffLoveShell class. More...
|
| |
| template<typename ScalarType = double> |
| auto | displacementFunction (const FERequirementType &par, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const |
| | Get the displacement function and nodal displacements. More...
|
| |
| const Geometry & | geometry () const |
| |
| size_t | numberOfNodes () const |
| |
| int | order () const |
| |
| double | calculateScalar (const FERequirementType &req) const |
| | Calculate the scalar value. More...
|
| |
| void | calculateVector (const FERequirementType &req, typename Traits::template VectorType<> force) const |
| | Calculate the vector associated with the given FERequirementType. More...
|
| |
| void | calculateMatrix (const FERequirementType &req, typename Traits::template MatrixType<> K) const |
| | Calculate the matrix associated with the given FERequirementType. More...
|
| |
| void | calculateAt (const ResultRequirementsType &req, const Dune::FieldVector< double, Traits::mydim > &local, ResultTypeMap< double > &result) const |
| | Calculate results at local coordinates. More...
|
| |
| constexpr size_t | size () const |
| | Get the size of the local view. More...
|
| |
| void | globalFlatIndices (std::vector< GlobalIndex > &globalIndices) const |
| | Get the global flat indices for the power basis. More...
|
| |
| const GridElement & | gridElement () const |
| | Get the grid element associated with the local view. More...
|
| |
| const LocalView & | localView () const |
| | Get the const reference to the local view. More...
|
| |
| LocalView & | localView () |
| | Get the reference to the local view. More...
|
| |
| double | calculateScalar (const FERequirementType &req) const |
| | Calculate the scalar value. More...
|
| |
| void | calculateVector (const FERequirementType &req, typename Traits::template VectorType<> force) const |
| | Calculate the vector associated with the given FERequirementType. More...
|
| |
| void | calculateMatrix (const FERequirementType &req, typename Traits::template MatrixType<> K) const |
| | Calculate the matrix associated with the given FERequirementType. More...
|
| |
| double | calculateScalar (const FERequirementType &req) const |
| | Calculate the scalar value. More...
|
| |
| void | calculateVector (const FERequirementType &req, typename Traits::template VectorType<> force) const |
| | Calculate the vector associated with the given FERequirementType. More...
|
| |
| void | calculateMatrix (const FERequirementType &req, typename Traits::template MatrixType<> K) const |
| | Calculate the matrix associated with the given FERequirementType. More...
|
| |
|
| auto | computeMaterialAndStrains (const Dune::FieldVector< double, 2 > &gpPos, int gpIndex, const Geometry &geo, const auto &uFunction) const |
| | Compute material properties and strains at a given integration point. More...
|
| |
| template<typename ScalarType > |
| void | calculateMatrixImpl (const FERequirementType &par, typename Traits::template MatrixType< ScalarType > K, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const |
| |
| template<typename ScalarType > |
| void | calculateVectorImpl (const FERequirementType &par, typename Traits::template VectorType< ScalarType > force, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const |
| |
| template<typename ScalarType > |
| auto | calculateScalarImpl (const FERequirementType &par, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const -> ScalarType |
| |
| template<typename ScalarType > |
| Eigen::Matrix< ScalarType, 3, 3 > | kgBending (const Eigen::Matrix< ScalarType, 2, 3 > &jcur, const Eigen::Matrix3< ScalarType > &h, const auto &dN, const auto &ddN, const Eigen::Vector3< ScalarType > &a3N, const Eigen::Vector3< ScalarType > &a3, const Eigen::Vector3< ScalarType > &S, int I, int J) const |
| |
| template<typename ScalarType > |
| Eigen::Matrix< ScalarType, 3, 3 > | bopBending (const Eigen::Matrix< ScalarType, 2, 3 > &jcur, const Eigen::Matrix3< ScalarType > &h, const auto &dN, const auto &ddN, const int node, const Eigen::Vector3< ScalarType > &a3N, const Eigen::Vector3< ScalarType > &a3) const |
| |
| Eigen::Matrix< double, 3, 3 > | materialTangent (const Eigen::Matrix< double, 3, 3 > &Aconv) const |
| |
| auto | calculateScalarImpl (const FERequirementType &par, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const -> ScalarType |
| |
| void | calculateVectorImpl (const FERequirementType &par, typename Traits::template VectorType< ScalarType > force, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const |
| |
| void | calculateMatrixImpl (const FERequirementType &par, typename Traits::template MatrixType<> K, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const |
| |
| auto | calculateScalarImpl (const FERequirementType &par, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const -> ScalarType |
| |
| void | calculateVectorImpl (const FERequirementType &par, typename Traits::template VectorType< ScalarType > force, const std::optional< const Eigen::VectorX< ScalarType > > dx=std::nullopt) const |
| |
| void | calculateMatrixImpl (const FERequirementType &par, typename Traits::template MatrixType<> K, const std::optional< const Eigen::VectorX< ScalarType > > &dx=std::nullopt) const |
| |
template<typename Basis_, typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
class Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >
This class represents Kirchhoff-Love shell finite elements.
- Template Parameters
-
| Basis_ | The basis type for the finite element. |
| FERequirements_ | The type representing the requirements for finite element calculations. |
| useEigenRef | A boolean indicating whether to use Eigen references for efficiency. |
template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
template<typename VolumeLoad = utils::LoadDefault, typename NeumannBoundaryLoad = utils::LoadDefault>
| Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::KirchhoffLoveShell |
( |
const Basis & |
globalBasis, |
|
|
const typename LocalView::Element & |
element, |
|
|
double |
emod, |
|
|
double |
nu, |
|
|
double |
thickness, |
|
|
VolumeLoad |
p_volumeLoad = {}, |
|
|
const BoundaryPatch< GridView > * |
p_neumannBoundary = nullptr, |
|
|
NeumannBoundaryLoad |
p_neumannBoundaryLoad = {} |
|
) |
| |
|
inline |
Initializes the KirchhoffLoveShell instance with the given parameters.
- Template Parameters
-
| VolumeLoad | The type representing the volume load function. |
| NeumannBoundaryLoad | The type representing the Neumann boundary load function. |
- Parameters
-
| globalBasis | The global basis for the finite element. |
| element | The local element to bind. |
| emod | Young's modulus of the material. |
| nu | Poisson's ratio of the material. |
| thickness | Thickness of the shell. |
| p_volumeLoad | The volume load function (optional, default is utils::LoadDefault). |
| p_neumannBoundary | The Neumann boundary patch (optional, default is nullptr). |
| p_neumannBoundaryLoad | The Neumann boundary load function (optional, default is LoadDefault). |