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: