version 0.4
Ikarus::DefaultMembraneStrain Struct Reference

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

Public Member Functions

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

Member Function Documentation

◆ derivative()

template<typename Geometry , typename ScalarType >
auto Ikarus::DefaultMembraneStrain::derivative ( const Dune::FieldVector< double, 2 > &  gpPos,
const Eigen::Matrix< ScalarType, 2, 3 > &  jcur,
const auto &  dNAtGp,
const Geometry &  geo,
const auto &  uFunction,
const auto &  localBasis,
const int  node 
) const
inline
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
GeometryThe type of the geometry object.
ScalarTypeThe 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 Geometry , typename ScalarType >
auto Ikarus::DefaultMembraneStrain::secondDerivative ( const Dune::FieldVector< double, 2 > &  gpPos,
const auto &  dNAtGp,
const Geometry &  geo,
const auto &  uFunction,
const auto &  localBasis,
const Eigen::Vector3< ScalarType > &  S,
int  I,
int  J 
) const
inline

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
GeometryThe type of the geometry object.
ScalarTypeThe 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 Geometry >
auto Ikarus::DefaultMembraneStrain::value ( const Dune::FieldVector< double, 2 > &  gpPos,
const Geometry &  geo,
const auto &  uFunction 
) const -> Eigen::Vector3<typename std::remove_cvref_t<decltype(uFunction)>::ctype>
inline
Parameters
gpPosThe position of the integration point.
geoThe geometry object providing the transposed Jacobian.
uFunctionThe function representing the displacement field.
Template Parameters
GeometryThe 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: