NonLinearElastic class represents a non-linear elastic finite element.
More...
#include <ikarus/finiteelements/mechanics/nonlinearelastic.hh>
|
| NonLinearElastic (const Pre &pre) |
| Constructor for the NonLinearElastic class. More...
|
|
template<typename ScalarType = double> |
auto | displacementFunction (const FERequirementType &par, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const |
| Get the displacement function for the given FERequirementType. More...
|
|
template<typename ScalarType = double> |
auto | strainFunction (const FERequirementType &par, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const |
| The strain function for the given FERequirementType. More...
|
|
template<typename ScalarType , int strainDim, bool voigt = true> |
auto | materialTangent (const Eigen::Vector< ScalarType, strainDim > &strain) const |
| Get the material tangent for the given strain. More...
|
|
template<typename ScalarType , int strainDim> |
auto | getInternalEnergy (const Eigen::Vector< ScalarType, strainDim > &strain) const |
| Get the internal energy for the given strain. More...
|
|
template<typename ScalarType , int strainDim, bool voigt = true> |
auto | getStress (const Eigen::Vector< ScalarType, strainDim > &strain) const |
| Get the stress for the given strain. More...
|
|
const Geometry & | geometry () const |
|
size_t | numberOfNodes () const |
|
int | order () const |
|
template<template< typename, int, int > class RT>
requires (canProvideResultType<RT>()) |
auto | calculateAtImpl (const FERequirementType &req, const Dune::FieldVector< double, Traits::mydim > &local, Dune::PriorityTag< 1 >) const |
| Calculates a requested result at a specific local position. More...
|
|
|
void | bindImpl () |
| A helper function to bind the local view to the element. More...
|
|
template<typename ScalarType > |
void | calculateMatrixImpl (const FERequirementType &par, typename Traits::template MatrixType<> K, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const |
| Calculate the matrix associated with the given FERequirementType. More...
|
|
template<typename ScalarType > |
auto | calculateScalarImpl (const FERequirementType &par, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const -> ScalarType |
|
template<typename ScalarType > |
void | calculateVectorImpl (const FERequirementType &par, typename Traits::template VectorType< ScalarType > force, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const |
|
template<typename
PreFE, typename
FE, typename PRE>
class Ikarus::NonLinearElastic< PreFE, FE, PRE >
- Template Parameters
-
PreFE | The type of the total pre finite element. |
FE | The type of the finite element. |
PRE | The type of the non-linear elastic pre finite element. |
◆ Basis
template<typename
PreFE , typename
FE , typename PRE >
◆ Element
template<typename
PreFE , typename
FE , typename PRE >
◆ FERequirementType
template<typename
PreFE , typename
FE , typename PRE >
◆ FlatBasis
template<typename
PreFE , typename
FE , typename PRE >
◆ Geometry
template<typename
PreFE , typename
FE , typename PRE >
◆ GridView
template<typename
PreFE , typename
FE , typename PRE >
◆ LocalBasisType
template<typename
PreFE , typename
FE , typename PRE >
◆ LocalView
template<typename
PreFE , typename
FE , typename PRE >
◆ Material
template<typename
PreFE , typename
FE , typename PRE >
◆ Pre
template<typename
PreFE , typename
FE , typename PRE >
◆ SupportedResultTypes
template<typename
PreFE , typename
FE , typename PRE >
◆ Traits
template<typename
PreFE , typename
FE , typename PRE >
◆ NonLinearElastic()
template<typename
PreFE , typename
FE , typename PRE >
◆ bindImpl()
template<typename
PreFE , typename
FE , typename PRE >
◆ calculateAtImpl()
template<typename
PreFE , typename
FE , typename PRE >
template<template< typename, int, int > class RT>
requires (canProvideResultType<RT>())
- Parameters
-
req | The FERequirementType object holding the global solution. |
local | Local position vector. |
- Returns
- calculated result
- Template Parameters
-
RT | The type representing the requested result. |
◆ calculateMatrixImpl()
template<typename
PreFE , typename
FE , typename PRE >
template<typename ScalarType >
void Ikarus::NonLinearElastic< PreFE, FE, PRE >::calculateMatrixImpl |
( |
const FERequirementType & |
par, |
|
|
typename Traits::template MatrixType<> |
K, |
|
|
const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > & |
dx = std::nullopt |
|
) |
| const |
|
inlineprotected |
- Template Parameters
-
ScalarType | The scalar type for the calculation. |
- Parameters
-
par | The FERequirementType object specifying the requirements for the calculation. |
K | The matrix to store the calculated result. |
◆ calculateScalarImpl()
template<typename
PreFE , typename
FE , typename PRE >
template<typename ScalarType >
◆ calculateVectorImpl()
template<typename
PreFE , typename
FE , typename PRE >
template<typename ScalarType >
void Ikarus::NonLinearElastic< PreFE, FE, PRE >::calculateVectorImpl |
( |
const FERequirementType & |
par, |
|
|
typename Traits::template VectorType< ScalarType > |
force, |
|
|
const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > & |
dx = std::nullopt |
|
) |
| const |
|
inlineprotected |
◆ displacementFunction()
template<typename
PreFE , typename
FE , typename PRE >
template<typename ScalarType = double>
- Template Parameters
-
ScalarType | The scalar type for the displacement function. |
- Parameters
-
par | The FERequirementType object. |
dx | Optional displacement vector. |
- Returns
- A StandardLocalFunction representing the displacement function.
◆ geometry()
template<typename
PreFE , typename
FE , typename PRE >
◆ getInternalEnergy()
template<typename
PreFE , typename
FE , typename PRE >
template<typename ScalarType , int strainDim>
- Template Parameters
-
ScalarType | The scalar type for the material and strain. |
strainDim | The dimension of the strain vector. |
- Parameters
-
- Returns
- The internal energy calculated using the material's storedEnergy function.
◆ getStress()
template<typename
PreFE , typename
FE , typename PRE >
template<typename ScalarType , int strainDim, bool voigt = true>
- Template Parameters
-
ScalarType | The scalar type for the material and strain. |
strainDim | The dimension of the strain vector. |
voigt | A boolean indicating whether to use the Voigt notation for stress. |
- Parameters
-
- Returns
- The stress vector calculated using the material's stresses function.
◆ materialTangent()
template<typename
PreFE , typename
FE , typename PRE >
template<typename ScalarType , int strainDim, bool voigt = true>
- Template Parameters
-
ScalarType | The scalar type for the material and strain. |
strainDim | The dimension of the strain vector. |
voigt | Flag indicating whether to use Voigt notation. |
- Parameters
-
- Returns
- The material tangent calculated using the material's tangentModuli function.
◆ numberOfNodes()
template<typename
PreFE , typename
FE , typename PRE >
◆ order()
template<typename
PreFE , typename
FE , typename PRE >
◆ strainFunction()
template<typename
PreFE , typename
FE , typename PRE >
template<typename ScalarType = double>
- Template Parameters
-
ScalarType | The scalar type for the strain function. |
- Parameters
-
par | The FERequirementType object. |
dx | Optional displacement vector. |
- Returns
- The strain function calculated using greenLagrangeStrains.
◆ myDim
template<typename
PreFE , typename
FE , typename PRE >
◆ strainType
template<typename
PreFE , typename
FE , typename PRE >
The documentation for this class was generated from the following file: