Implementation of a general Hyperelastic Material material model. More...
#include <ikarus/finiteelements/mechanics/materials/hyperelastic/interface.hh>
Public Types | |
using | ScalarType = typename DEV::ScalarType |
using | StrainMatrix = Eigen::Matrix< ScalarType, dim, dim > |
using | StressMatrix = StrainMatrix |
using | MaterialTensor = Eigen::TensorFixedSize< ScalarType, Eigen::Sizes< dim, dim, dim, dim > > |
using | MaterialParametersDEV = typename DEV::MaterialParameters |
using | MaterialParametersVOL = typename VOL::MaterialParameter |
using | MaterialParameters = std::conditional_t< hasVolumetricPart, std::pair< MaterialParametersDEV, MaterialParametersVOL >, MaterialParametersDEV > |
using | MaterialImpl = Hyperelastic< DEV, NoVolumetricPart > |
Type of material implementation. More... | |
Public Member Functions | |
Hyperelastic (const DEV &dev) | |
Hyperelastic (const DEV &dev, const VOL &vol) | |
const DEV & | deviatoricFunction () const |
Returns the deviatoric function. More... | |
const VOL & | volumetricFunction () const |
Returns the volumetric function. More... | |
const MaterialParameters | materialParametersImpl () const |
Returns the material parameters stored in the deviatoric part of the material. More... | |
template<typename Derived > | |
ScalarType | storedEnergyImpl (const Eigen::MatrixBase< Derived > &C) const |
Computes the total stored energy in the Hyperelastic material model. More... | |
template<bool voigt, typename Derived > | |
StressMatrix | stressesImpl (const Eigen::MatrixBase< Derived > &C) const |
Computes the stresses in the Hyperelastic material model. More... | |
template<bool voigt, typename Derived > | |
MaterialTensor | tangentModuliImpl (const Eigen::MatrixBase< Derived > &C) const |
Computes the tangent moduli in the Hyperelastic material model. More... | |
template<typename STO > | |
auto | rebind () const |
Rebinds the material to a different scalar type. More... | |
constexpr const MaterialImpl & | impl () const |
Const accessor to the underlying material (CRTP). More... | |
constexpr MaterialImpl & | impl () |
Accessor to the underlying material (CRTP). More... | |
auto | materialParameters () const |
Returns the material parameters stored in the implemented material. More... | |
auto | storedEnergy (const Eigen::MatrixBase< Derived > &Eraw) const |
Return the stored potential energy of the material. More... | |
auto | stresses (const Eigen::MatrixBase< Derived > &Eraw) const |
Get the stresses of the material. More... | |
auto | tangentModuli (const Eigen::MatrixBase< Derived > &Eraw) const |
Get the tangentModuli of the material. More... | |
Static Public Member Functions | |
static constexpr std::string | nameImpl () noexcept |
static constexpr std::string | name () |
Get the name of the implemented material. More... | |
Static Public Attributes | |
static constexpr bool | hasVolumetricPart = not std::same_as<VOL, NoVolumetricPart> |
static constexpr bool | isAutoDiff = Concepts::AutodiffScalar<ScalarType> |
static constexpr int | dim = 3 |
static constexpr auto | strainTag = StrainTags::rightCauchyGreenTensor |
static constexpr auto | stressTag = StressTags::PK2 |
static constexpr auto | tangentModuliTag = TangentModuliTags::Material |
static constexpr bool | energyAcceptsVoigt = false |
static constexpr bool | stressToVoigt = false |
static constexpr bool | stressAcceptsVoigt = false |
static constexpr bool | moduliToVoigt = false |
static constexpr bool | moduliAcceptsVoigt = false |
static constexpr double | derivativeFactorImpl = 2 |
static constexpr bool | isReduced |
Static constant for determining if the material has vanishing stress or strain components (is reduced). More... | |
static constexpr double | derivativeFactor |
This factor denotes the differences between the returned stresses and moduli and the passed strain. More... | |
\(\Psi(\BC) = \hat{\Psi}(\la_1, \la_2, \la_3) + U(J)\) with \(\hat{\Psi}\) being the deviatoric part of the strain energy function and \( U(J) \) being the volumetric part. After calling the underlying deviatoric and volumetric function, the transformation to cartesian coordinate system is implemented in this interface.
|
inherited |
using Ikarus::Materials::Hyperelastic< DEV, VOL >::MaterialParameters = std::conditional_t<hasVolumetricPart, std::pair<MaterialParametersDEV, MaterialParametersVOL>, MaterialParametersDEV> |
using Ikarus::Materials::Hyperelastic< DEV, VOL >::MaterialParametersDEV = typename DEV::MaterialParameters |
using Ikarus::Materials::Hyperelastic< DEV, VOL >::MaterialParametersVOL = typename VOL::MaterialParameter |
using Ikarus::Materials::Hyperelastic< DEV, VOL >::MaterialTensor = Eigen::TensorFixedSize<ScalarType, Eigen::Sizes<dim, dim, dim, dim> > |
using Ikarus::Materials::Hyperelastic< DEV, VOL >::ScalarType = typename DEV::ScalarType |
using Ikarus::Materials::Hyperelastic< DEV, VOL >::StrainMatrix = Eigen::Matrix<ScalarType, dim, dim> |
using Ikarus::Materials::Hyperelastic< DEV, VOL >::StressMatrix = StrainMatrix |
|
inlineexplicit |
|
inline |
|
inline |
|
inlineconstexprinherited |
|
inlineconstexprinherited |
|
inlineinherited |
|
inline |
|
inlinestaticconstexprinherited |
|
inlinestaticconstexprnoexcept |
|
inline |
STO | The target scalar type. |
|
inlineinherited |
This function return the free Helmholtz energy of the material
tag | Strain tag indicating which strain tensor components are passed. |
Derived | The underlying Eigen type. |
Eraw | The strain tensor components passed in Voigt notation or matrix notation. |
|
inline |
Derived | The derived type of the input matrix. |
C | The right Cauchy-Green tensor. |
|
inlineinherited |
tag | Strain tag indicating which strain tensor components are passed. |
voigt | Boolean indicating whether to return Voigt-shaped result. |
Derived | The underlying Eigen type. |
Eraw | The strain tensor components passed in Voigt notation or matrix notation. |
|
inline |
voigt | A boolean indicating whether to return stresses in Voigt notation. |
Derived | The derived type of the input matrix. |
C | The right Cauchy-Green tensor. |
|
inlineinherited |
tag | Strain tag indicating which strain tensor components are passed. |
voigt | Boolean indicating whether to return Voigt-shaped result. |
Derived | The underlying Eigen type. |
Eraw | The strain tensor components passed in Voigt notation or matrix notation. |
|
inline |
voigt | A boolean indicating whether to return tangent moduli in Voigt notation. |
Derived | The derived type of the input matrix. |
C | The right Cauchy-Green tensor. |
|
inline |
|
staticconstexprinherited |
For neoHooke the inserted quantity is $C$ the Green-Lagrangian strain tensor, the function relation between the energy and the stresses is $S = 1 \dfrac{\partial\psi(E)}{\partial E}$. This factor is the pre factor, which is the difference to the actual derivative, which is written here
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexprinherited |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |