version 0.4
Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef > Class Template Reference

Kirchhoff-Love shell finite element class. More...

#include <ikarus/finiteelements/mechanics/kirchhoffloveshell.hh>

Inheritance diagram for Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >:
[legend]

Classes

struct  KinematicVariables
 A structure representing kinematic variables. More...
 

Public Types

using Traits = TraitsFromFE< Basis_, FERequirements_, useEigenRef >
 
using Basis = typename Traits::Basis
 
using FlatBasis = typename Traits::FlatBasis
 
using FERequirementType = typename Traits::FERequirementType
 
using LocalView = typename Traits::LocalView
 
using Geometry = typename Traits::Geometry
 
using GridView = typename Traits::GridView
 
using Element = typename Traits::Element
 
using ResultRequirementsType = typename Traits::ResultRequirementsType
 
using BasePowerFE = PowerBasisFE< FlatBasis >
 
using VolumeType = Volume< KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >, Traits >
 
using TractionType = Traction< KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >, Traits >
 
using LocalBasisType = decltype(std::declval< LocalView >().tree().child(0).finiteElement().localBasis())
 
using RootBasis = Basis_::FlatBasis
 Type of the root basis. More...
 
using GlobalIndex = typename LocalView::MultiIndex
 Type of the global index. More...
 
using GridElement = typename LocalView::Element
 Type of the grid element. More...
 

Public Member Functions

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 Geometrygeometry () 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 GridElementgridElement () const
 Get the grid element associated with the local view. More...
 
const LocalViewlocalView () const
 Get the const reference to the local view. More...
 
LocalViewlocalView ()
 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...
 

Static Public Attributes

static constexpr int myDim = Traits::mydim
 
static constexpr int worldDim = Traits::worlddim
 
static constexpr int membraneStrainSize = 3
 
static constexpr int bendingStrainSize = 3
 
static constexpr int num_children
 Number of children in the powerBasis. More...
 

Protected Member Functions

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
 

Detailed Description

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.
useEigenRefA boolean indicating whether to use Eigen references for efficiency.

Member Typedef Documentation

◆ BasePowerFE

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::BasePowerFE = PowerBasisFE<FlatBasis>

◆ Basis

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::Basis = typename Traits::Basis

◆ Element

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::Element = typename Traits::Element

◆ FERequirementType

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::FERequirementType = typename Traits::FERequirementType

◆ FlatBasis

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::FlatBasis = typename Traits::FlatBasis

◆ Geometry

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::Geometry = typename Traits::Geometry

◆ GlobalIndex

using Ikarus::PowerBasisFE< Basis_::FlatBasis >::GlobalIndex = typename LocalView::MultiIndex
inherited

◆ GridElement

using Ikarus::PowerBasisFE< Basis_::FlatBasis >::GridElement = typename LocalView::Element
inherited

◆ GridView

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::GridView = typename Traits::GridView

◆ LocalBasisType

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::LocalBasisType = decltype(std::declval<LocalView>().tree().child(0).finiteElement().localBasis())

◆ LocalView

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::LocalView = typename Traits::LocalView

◆ ResultRequirementsType

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::ResultRequirementsType = typename Traits::ResultRequirementsType

◆ RootBasis

using Ikarus::PowerBasisFE< Basis_::FlatBasis >::RootBasis = Basis_::FlatBasis
inherited

◆ TractionType

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::TractionType = Traction<KirchhoffLoveShell<Basis_, FERequirements_, useEigenRef>, Traits>

◆ Traits

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::Traits = TraitsFromFE<Basis_, FERequirements_, useEigenRef>

◆ VolumeType

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
using Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::VolumeType = Volume<KirchhoffLoveShell<Basis_, FERequirements_, useEigenRef>, Traits>

Constructor & Destructor Documentation

◆ KirchhoffLoveShell()

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
VolumeLoadThe type representing the volume load function.
NeumannBoundaryLoadThe type representing the Neumann boundary load function.
Parameters
globalBasisThe global basis for the finite element.
elementThe local element to bind.
emodYoung's modulus of the material.
nuPoisson's ratio of the material.
thicknessThickness of the shell.
p_volumeLoadThe volume load function (optional, default is utils::LoadDefault).
p_neumannBoundaryThe Neumann boundary patch (optional, default is nullptr).
p_neumannBoundaryLoadThe Neumann boundary load function (optional, default is LoadDefault).

Member Function Documentation

◆ bopBending()

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
template<typename ScalarType >
Eigen::Matrix< ScalarType, 3, 3 > Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::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
inlineprotected
Here is the caller graph for this function:

◆ calculateAt()

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
void Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::calculateAt ( const ResultRequirementsType req,
const Dune::FieldVector< double, Traits::mydim > &  local,
ResultTypeMap< double > &  result 
) const
inline

Calculates the results at the specified local coordinates based on the given requirements and stores them in the result container.

Parameters
reqThe result requirements.
localThe local coordinates at which results are to be calculated.
resultThe result container to store the calculated values.

◆ calculateMatrix() [1/3]

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
void Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::calculateMatrix ( const FERequirementType req,
typename Traits::template MatrixType<>  K 
) const
inline
Template Parameters
ScalarTypeThe scalar type for the calculation.
Parameters
reqThe FERequirementType object specifying the requirements for the calculation.
KThe matrix to store the calculated result.

◆ calculateMatrix() [2/3]

void Ikarus::Traction< KirchhoffLoveShell< Basis_, FERequirements<>, false > , TraitsFromFE< Basis_, FERequirements<>, false > >::calculateMatrix ( const FERequirementType req,
typename Traits::template MatrixType<>  K 
) const
inlineinherited
Template Parameters
ScalarTypeThe scalar type for the calculation.
Parameters
reqThe FERequirementType object specifying the requirements for the calculation.
KThe matrix to store the calculated result.

◆ calculateMatrix() [3/3]

void Ikarus::Volume< KirchhoffLoveShell< Basis_, FERequirements<>, false > , TraitsFromFE< Basis_, FERequirements<>, false > >::calculateMatrix ( const FERequirementType req,
typename Traits::template MatrixType<>  K 
) const
inlineinherited
Template Parameters
ScalarTypeThe scalar type for the calculation.
Parameters
reqThe FERequirementType object specifying the requirements for the calculation.
KThe matrix to store the calculated result.

◆ calculateMatrixImpl() [1/3]

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
template<typename ScalarType >
void Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::calculateMatrixImpl ( const FERequirementType par,
typename Traits::template MatrixType< ScalarType >  K,
const std::optional< const Eigen::VectorX< ScalarType > > &  dx = std::nullopt 
) const
inlineprotected

◆ calculateMatrixImpl() [2/3]

void Ikarus::Traction< KirchhoffLoveShell< Basis_, FERequirements<>, false > , TraitsFromFE< Basis_, FERequirements<>, false > >::calculateMatrixImpl ( const FERequirementType par,
typename Traits::template MatrixType<>  K,
const std::optional< const Eigen::VectorX< ScalarType > > &  dx = std::nullopt 
) const
inlineprotectedinherited

◆ calculateMatrixImpl() [3/3]

void Ikarus::Volume< KirchhoffLoveShell< Basis_, FERequirements<>, false > , TraitsFromFE< Basis_, FERequirements<>, false > >::calculateMatrixImpl ( const FERequirementType par,
typename Traits::template MatrixType<>  K,
const std::optional< const Eigen::VectorX< ScalarType > > &  dx = std::nullopt 
) const
inlineprotectedinherited

◆ calculateScalar() [1/3]

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
double Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::calculateScalar ( const FERequirementType req) const
inline

Calculates the scalar value based on the given FERequirements.

Parameters
reqThe FERequirements.
Returns
The calculated scalar value.

◆ calculateScalar() [2/3]

double Ikarus::Traction< KirchhoffLoveShell< Basis_, FERequirements<>, false > , TraitsFromFE< Basis_, FERequirements<>, false > >::calculateScalar ( const FERequirementType req) const
inlineinherited

Calculates the scalar value based on the given FERequirements.

Parameters
reqThe FERequirements.
Returns
The calculated scalar value.

◆ calculateScalar() [3/3]

double Ikarus::Volume< KirchhoffLoveShell< Basis_, FERequirements<>, false > , TraitsFromFE< Basis_, FERequirements<>, false > >::calculateScalar ( const FERequirementType req) const
inlineinherited

Calculates the scalar value based on the given FERequirements.

Parameters
reqThe FERequirements.
Returns
The calculated scalar value.

◆ calculateScalarImpl() [1/3]

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
template<typename ScalarType >
auto Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::calculateScalarImpl ( const FERequirementType par,
const std::optional< const Eigen::VectorX< ScalarType > > &  dx = std::nullopt 
) const -> ScalarType
inlineprotected

◆ calculateScalarImpl() [2/3]

auto Ikarus::Traction< KirchhoffLoveShell< Basis_, FERequirements<>, false > , TraitsFromFE< Basis_, FERequirements<>, false > >::calculateScalarImpl ( const FERequirementType par,
const std::optional< const Eigen::VectorX< ScalarType > > &  dx = std::nullopt 
) const-> ScalarType
inlineprotectedinherited

◆ calculateScalarImpl() [3/3]

auto Ikarus::Volume< KirchhoffLoveShell< Basis_, FERequirements<>, false > , TraitsFromFE< Basis_, FERequirements<>, false > >::calculateScalarImpl ( const FERequirementType par,
const std::optional< const Eigen::VectorX< ScalarType > > &  dx = std::nullopt 
) const-> ScalarType
inlineprotectedinherited

◆ calculateVector() [1/3]

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
void Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::calculateVector ( const FERequirementType req,
typename Traits::template VectorType<>  force 
) const
inline
Template Parameters
ScalarTypeThe scalar type for the calculation.
Parameters
reqThe FERequirementType object specifying the requirements for the calculation.
forceThe vector to store the calculated result.

◆ calculateVector() [2/3]

void Ikarus::Traction< KirchhoffLoveShell< Basis_, FERequirements<>, false > , TraitsFromFE< Basis_, FERequirements<>, false > >::calculateVector ( const FERequirementType req,
typename Traits::template VectorType<>  force 
) const
inlineinherited
Template Parameters
ScalarTypeThe scalar type for the calculation.
Parameters
reqThe FERequirementType object specifying the requirements for the calculation.
forceThe vector to store the calculated result.

◆ calculateVector() [3/3]

void Ikarus::Volume< KirchhoffLoveShell< Basis_, FERequirements<>, false > , TraitsFromFE< Basis_, FERequirements<>, false > >::calculateVector ( const FERequirementType req,
typename Traits::template VectorType<>  force 
) const
inlineinherited
Template Parameters
ScalarTypeThe scalar type for the calculation.
Parameters
reqThe FERequirementType object specifying the requirements for the calculation.
forceThe vector to store the calculated result.

◆ calculateVectorImpl() [1/3]

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
template<typename ScalarType >
void Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::calculateVectorImpl ( const FERequirementType par,
typename Traits::template VectorType< ScalarType >  force,
const std::optional< const Eigen::VectorX< ScalarType > > &  dx = std::nullopt 
) const
inlineprotected

◆ calculateVectorImpl() [2/3]

void Ikarus::Volume< KirchhoffLoveShell< Basis_, FERequirements<>, false > , TraitsFromFE< Basis_, FERequirements<>, false > >::calculateVectorImpl ( const FERequirementType par,
typename Traits::template VectorType< ScalarType >  force,
const std::optional< const Eigen::VectorX< ScalarType > > &  dx = std::nullopt 
) const
inlineprotectedinherited

◆ calculateVectorImpl() [3/3]

void Ikarus::Traction< KirchhoffLoveShell< Basis_, FERequirements<>, false > , TraitsFromFE< Basis_, FERequirements<>, false > >::calculateVectorImpl ( const FERequirementType par,
typename Traits::template VectorType< ScalarType >  force,
const std::optional< const Eigen::VectorX< ScalarType > >  dx = std::nullopt 
) const
inlineprotectedinherited

Integration rule along the boundary

The value of the local function wrt the i-th coeff

Value of the Neumann data at the current position

◆ computeMaterialAndStrains()

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
auto Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::computeMaterialAndStrains ( const Dune::FieldVector< double, 2 > &  gpPos,
int  gpIndex,
const Geometry geo,
const auto &  uFunction 
) const
inlineprotected
Parameters
gpPosThe position of the integration point.
gpIndexThe index of the integration point.
geoThe geometry object providing position and derivatives.
uFunctionThe function representing the displacement field.
Template Parameters
gpPosThe type of the integration point position.
gpIndexThe type of the integration point index.
geoThe type of the geometry object.
uFunctionThe type of the displacement field function.
Returns
A tuple containing the material tangent, membrane strain, bending, Jacobian matrix of the reference position, Jacobian matrix of the current position, Hessian matrix of the current position, Hessian matrix of the reference position, normal vector, and normalized normal vector at the given integration point.
Here is the caller graph for this function:

◆ displacementFunction()

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
template<typename ScalarType = double>
auto Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::displacementFunction ( const FERequirementType par,
const std::optional< const Eigen::VectorX< ScalarType > > &  dx = std::nullopt 
) const
inline

Retrieves the displacement function and nodal displacements based on the given FERequirements.

Template Parameters
ScalarTypeThe scalar type used for calculations.
Parameters
parThe FERequirements.
dxOptional additional displacement vector.
Returns
The displacement function.
Here is the caller graph for this function:

◆ geometry()

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
const Geometry & Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::geometry ( ) const
inline

◆ globalFlatIndices()

void Ikarus::PowerBasisFE< Basis_::FlatBasis >::globalFlatIndices ( std::vector< GlobalIndex > &  globalIndices) const
inlineinherited

The global indices are collected in a FlatInterLeaved order. I.e. x_0, y_0, z_0, ..., x_n, y_n, z_n

Parameters
globalIndicesOutput vector to store global indices.

◆ gridElement()

const GridElement & Ikarus::PowerBasisFE< Basis_::FlatBasis >::gridElement ( ) const
inlineinherited
Returns
The grid element.

◆ kgBending()

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
template<typename ScalarType >
Eigen::Matrix< ScalarType, 3, 3 > Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::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
inlineprotected
Here is the caller graph for this function:

◆ localView() [1/2]

LocalView & Ikarus::PowerBasisFE< Basis_::FlatBasis >::localView ( )
inlineinherited
Returns
The reference to the local view.

◆ localView() [2/2]

const LocalView & Ikarus::PowerBasisFE< Basis_::FlatBasis >::localView ( ) const
inlineinherited
Returns
The const reference to the local view.

◆ materialTangent()

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
Eigen::Matrix< double, 3, 3 > Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::materialTangent ( const Eigen::Matrix< double, 3, 3 > &  Aconv) const
inlineprotected
Here is the caller graph for this function:

◆ numberOfNodes()

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
size_t Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::numberOfNodes ( ) const
inline

◆ order()

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
int Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::order ( ) const
inline

◆ size()

constexpr size_t Ikarus::PowerBasisFE< Basis_::FlatBasis >::size ( ) const
inlineconstexprinherited
Returns
The size of the local view.

Member Data Documentation

◆ bendingStrainSize

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
constexpr int Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::bendingStrainSize = 3
staticconstexpr

◆ membraneStrainSize

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
constexpr int Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::membraneStrainSize = 3
staticconstexpr

◆ myDim

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
constexpr int Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::myDim = Traits::mydim
staticconstexpr

◆ num_children

constexpr int Ikarus::PowerBasisFE< Basis_::FlatBasis >::num_children
staticconstexprinherited

◆ worldDim

template<typename Basis_ , typename FERequirements_ = FERequirements<>, bool useEigenRef = false>
constexpr int Ikarus::KirchhoffLoveShell< Basis_, FERequirements_, useEigenRef >::worldDim = Traits::worlddim
staticconstexpr

The documentation for this class was generated from the following file: