version 0.4.1
Ikarus::DefaultMembraneStrain Struct Reference

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

Static Public Member Functions

template<typename GEO >
static auto value (const Dune::FieldVector< double, 2 > &gpPos, const GEO &geo, const auto &uFunction) -> Eigen::Vector3< typename std::remove_cvref_t< decltype(uFunction)>::ctype >
 Compute the strain vector at a given integration point. More...
 
template<typename GEO , typename ST >
static auto derivative (const Dune::FieldVector< double, 2 > &gpPos, const Eigen::Matrix< ST, 2, 3 > &jcur, const auto &dNAtGp, const GEO &geo, const auto &uFunction, const auto &localBasis, const int node)
 Compute the strain-displacement matrix for a given node and integration point. More...
 
template<typename GEO , typename ST >
static auto secondDerivative (const Dune::FieldVector< double, 2 > &gpPos, const auto &dNAtGp, const GEO &geo, const auto &uFunction, const auto &localBasis, const Eigen::Vector3< ST > &S, int I, int J)
 Compute the second derivative of the membrane strain for a given node pair and integration point. More...
 

Member Function Documentation

◆ derivative()

template<typename GEO , typename ST >
static auto Ikarus::DefaultMembraneStrain::derivative ( const Dune::FieldVector< double, 2 > &  gpPos,
const Eigen::Matrix< ST, 2, 3 > &  jcur,
const auto &  dNAtGp,
const GEO &  geo,
const auto &  uFunction,
const auto &  localBasis,
const int  node 
)
inlinestatic
Parameters
gpPosThe position of the integration point.
jcurThe Jacobian matrix.
dNAtGpThe derivative of the shape functions at the integration point.
geoThe geometry object of the finite element.
uFunctionThe function representing the displacement field.
localBasisThe local basis object.
nodeThe FE node index.
Template Parameters
GEOThe type of the geometry object.
STThe scalar type for the matrix elements.
Returns
The strain-displacement matrix for the given node and integration point.
Here is the caller graph for this function:

◆ secondDerivative()

template<typename GEO , typename ST >
static auto Ikarus::DefaultMembraneStrain::secondDerivative ( const Dune::FieldVector< double, 2 > &  gpPos,
const auto &  dNAtGp,
const GEO &  geo,
const auto &  uFunction,
const auto &  localBasis,
const Eigen::Vector3< ST > &  S,
int  I,
int  J 
)
inlinestatic

This function computes the geometric tangent stiffness for a given node pair at a given integration point.

Parameters
gpPosThe position of the integration point.
dNAtGpThe derivative of the shape functions at the integration point.
geoThe geometry object.
uFunctionThe function representing the displacement field.
localBasisThe local basis object.
SThe strain vector.
IThe index of the first node.
JThe index of the second node.
Template Parameters
GEOThe type of the geometry object.
STThe scalar type for the matrix elements.
Returns
The second derivative of the membrane strain.
Here is the caller graph for this function:

◆ value()

template<typename GEO >
static auto Ikarus::DefaultMembraneStrain::value ( const Dune::FieldVector< double, 2 > &  gpPos,
const GEO &  geo,
const auto &  uFunction 
) -> Eigen::Vector3<typename std::remove_cvref_t<decltype(uFunction)>::ctype>
inlinestatic
Parameters
gpPosThe position of the integration point.
geoThe geometry object providing the transposed Jacobian.
uFunctionThe function representing the displacement field.
Template Parameters
GEOThe type of the geometry object.
Returns
The strain vector at the given integration point.
Here is the caller graph for this function:

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