|
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). |