version 0.4.1
Ikarus::Materials Namespace Reference

Classes

struct  ArrudaBoyceT
 Implementation of the ArrudaBoyce material model (also referred as Eight-Chain model). More...
 
struct  BlatzKoT
 Implementation of the Blatz-Ko material model. More...
 
struct  Deviatoric
 This is the interface implementation for the deviatoric part of a hyperelastic material. It is intended to be used with the hyperelastic material model. More...
 
struct  DeviatoricInvariants
 Implementation of the deviatoric invariants and its derivatives. More...
 
struct  GentT
 Implementation of the Gent material model. More...
 
struct  Hyperelastic
 Implementation of a general Hyperelastic Material material model. More...
 
struct  InvariantBasedT
 Implementation of the InvariantBased material model. More...
 
struct  LinearElasticityT
 Implementation of the Linear Elasticity material model.The energy is computed as. More...
 
struct  Material
 Interface classf or materials. More...
 
struct  MatrixIndexPair
 Represents a pair of stress or strain matrix indices (row and column). More...
 
struct  NeoHookeT
 Implementation of the Neo-Hookean material model.The energy is computed as. More...
 
struct  OgdenT
 Implementation of the Ogden material model. More...
 
struct  StVenantKirchhoffT
 Implementation of the Saint Venant-Kirchhoff material model.The energy is computed as. More...
 
struct  VanishingStrain
 VanishingStrain material model that enforces strain components to be zero. More...
 
struct  VanishingStress
 VanishingStress material model that enforces stress components to be zero. More...
 
struct  VF0
 Default volumetric function. More...
 
struct  VF1
 Volumetric function No. 1 found in [5] Tab. 4. More...
 
struct  VF10
 Volumetric function No. 10 found in [5] Tab. 4. More...
 
struct  VF11
 Volumetric function No. 11 found in [5] Tab. 4. More...
 
struct  VF2
 Volumetric function No. 2 found in [5] Tab. 4. More...
 
struct  VF3
 Volumetric function No. 3 found in [5] Tab. 4. More...
 
struct  VF4
 Volumetric function No. 4 found in [5] Tab. 4. More...
 
struct  VF5
 Volumetric function No. 5 found in [5] Tab. 4. More...
 
struct  VF6
 Volumetric function No. 6 found in [5] Tab. 4. More...
 
struct  VF7
 Volumetric function No. 7 found in [5] Tab. 4. More...
 
struct  VF8
 Volumetric function No. 8 found in [5] Tab. 4. More...
 
struct  VF9
 Volumetric function No. 9 found in [5] Tab. 4. More...
 
struct  Volumetric
 Interface for the volumetric part of a hyperelastic material. Has to be parametrized with a volumetric function. More...
 

Concepts

concept  CorrectStrainSize
 Template concept for ensuring correct strain size.
 

Typedefs

using ArrudaBoyce = ArrudaBoyceT< double >
 Alias for ArrudaBoyceT with double as the default scalar type. More...
 
using BlatzKo = BlatzKoT< double >
 Alias for BlatzKoT with double as the default scalar type. More...
 
using Gent = GentT< double >
 Alias for GentT with double as the default scalar type. More...
 
template<int n>
using InvariantBased = InvariantBasedT< double, n >
 Alias for InvariantBasedT with double as the default scalar type. More...
 
template<int n, PrincipalStretchTags tag>
using Ogden = OgdenT< double, n, tag >
 Alias for OgdenT with double as the default scalar type. More...
 
using NeoHooke = NeoHookeT< double >
 Alias for NeoHookeT with double as the default scalar type. More...
 
using NoVolumetricPart = Volumetric< VF0 >
 
using LinearElasticity = LinearElasticityT< double >
 Convenience typedef for LinearElasticity with double as ScalarType. More...
 
using StVenantKirchhoff = StVenantKirchhoffT< double >
 Alias for StVenantKirchhoffT with double as the default scalar type. More...
 

Functions

auto makeBlatzKo (double mu)
 A helper function to create a hyperelastic material model, where the deviatoric part is according to the Blatz-Ko model. More...
 
template<int n, PrincipalStretchTags tag, typename VolumetricFunction = VF0>
auto makeOgden (const typename Ogden< n, tag >::MaterialParameters &mu, const typename Ogden< n, tag >::MaterialExponents alpha, double K=0.0, const VolumetricFunction &vf=VolumetricFunction{})
 A helper function to create a hyperelastic material model, where the deviatoric part is according to the Ogden model. More...
 
template<int n, typename VolumetricFunction = VF0>
auto makeInvariantBased (const typename InvariantBased< n >::MaterialParameters &mu, const typename InvariantBased< n >::Exponents pex, const typename InvariantBased< n >::Exponents qex, double K=0.0, const VolumetricFunction &vf=VolumetricFunction{})
 A helper function to create a hyperelastic material model, where the deviatoric part is according to the general invariant-based model. More...
 
template<typename VolumetricFunction = VF0>
auto makeMooneyRivlin (const typename InvariantBased< 2 >::MaterialParameters &mu, double K=0.0, const VolumetricFunction &vf=VolumetricFunction{})
 A helper function to create a hyperelastic material model, where the deviatoric part is according to the Mooney-Rivlin model (InvariantBased model with n = 2). More...
 
template<typename VolumetricFunction = VF0>
auto makeYeoh (const typename InvariantBased< 3 >::MaterialParameters &mu, double K=0.0, const VolumetricFunction &vf=VolumetricFunction{})
 A helper function to create a hyperelastic material model, where the deviatoric part is according to the Yeoh model (InvariantBased model with n = 3). More...
 
template<typename VolumetricFunction = VF0>
auto makeArrudaBoyce (const ArrudaBoyceMatParameters &matPar, double K=0.0, const VolumetricFunction &vf=VolumetricFunction{})
 A helper function to create a hyperelastic material model, where the deviatoric part is according to the Arruda-Boyce model. More...
 
template<typename VolumetricFunction = VF0>
auto makeGent (const GentMatParameters &matPar, double K=0.0, const VolumetricFunction &vf=VolumetricFunction{})
 A helper function to create a hyperelastic material model, where the deviatoric part is according to the Gent model. More...
 
template<typename MAT , typename S >
consteval bool hasCorrectSize ()
 Template function for checking if the strain size is correct. More...
 
template<MatrixIndexPair... stressIndexPair, typename MaterialImpl >
auto makeVanishingStrain (MaterialImpl mat)
 Factory function to create a VanishingStrain material with specified strain indices. More...
 
template<typename MaterialImpl >
auto planeStrain (const MaterialImpl &mat)
 Factory function to create a VanishingStrain material for plane strain conditions. More...
 
template<MatrixIndexPair... stressIndexPair, typename MaterialImpl >
auto makeVanishingStress (MaterialImpl mat, typename MaterialImpl::ScalarType p_tol=1e-12)
 Factory function to create a VanishingStress material with specified stress indices. More...
 
template<typename MaterialImpl >
auto planeStress (const MaterialImpl &mat, typename MaterialImpl::ScalarType tol=1e-8)
 Factory function to create a VanishingStress material for plane stress conditions. More...
 
template<typename MaterialImpl >
auto shellMaterial (const MaterialImpl &mat, typename MaterialImpl::ScalarType tol=1e-8)
 Factory function to create a VanishingStress material for a shell material with zero normal stress condition. More...
 
template<typename MaterialImpl >
auto beamMaterial (const MaterialImpl &mat, typename MaterialImpl::ScalarType tol=1e-8)
 Factory function to create a VanishingStress material for a beam material with two zero normal stress condition. More...
 

Typedef Documentation

◆ ArrudaBoyce

◆ BlatzKo

using Ikarus::Materials::BlatzKo = typedef BlatzKoT<double>

◆ Gent

using Ikarus::Materials::Gent = typedef GentT<double>

◆ InvariantBased

template<int n>
using Ikarus::Materials::InvariantBased = typedef InvariantBasedT<double, n>

◆ LinearElasticity

◆ NeoHooke

using Ikarus::Materials::NeoHooke = typedef NeoHookeT<double>

◆ NoVolumetricPart

◆ Ogden

template<int n, PrincipalStretchTags tag>
using Ikarus::Materials::Ogden = typedef OgdenT<double, n, tag>

◆ StVenantKirchhoff

Function Documentation

◆ beamMaterial()

template<typename MaterialImpl >
auto Ikarus::Materials::beamMaterial ( const MaterialImpl &  mat,
typename MaterialImpl::ScalarType  tol = 1e-8 
)
Template Parameters
MaterialImplThe underlying material model.
Parameters
matThe underlying material model.
p_tolTolerance for stress reduction.
Returns
VanishingStress The created VanishingStress material for plane stress.

◆ hasCorrectSize()

template<typename MAT , typename S >
consteval bool Ikarus::Materials::hasCorrectSize ( )

The given strain quantity has to be a Eigen::Vector6 or a Eigen::Matrix3

Template Parameters
MATType of the material.
SType of the strains.

◆ makeArrudaBoyce()

template<typename VolumetricFunction = VF0>
auto Ikarus::Materials::makeArrudaBoyce ( const ArrudaBoyceMatParameters matPar,
double  K = 0.0,
const VolumetricFunction &  vf = VolumetricFunction{} 
)
inline
Template Parameters
VolumetricFunctionType of the volumetric function.
Parameters
matParThe Arruda-Boyce material parameters (C and lambdaM).
KBulk modulus (or) Lamé's first parameter.
vfThe volumetric function.
Returns
A hyperelastic material model.

◆ makeBlatzKo()

auto Ikarus::Materials::makeBlatzKo ( double  mu)
inline
Parameters
muThe shear modulus.
Returns
A hyperelastic material model.

◆ makeGent()

template<typename VolumetricFunction = VF0>
auto Ikarus::Materials::makeGent ( const GentMatParameters matPar,
double  K = 0.0,
const VolumetricFunction &  vf = VolumetricFunction{} 
)
inline
Template Parameters
VolumetricFunctionType of the volumetric function.
Parameters
matParThe Gent material parameters (mu and Jm).
KBulk modulus (or) Lamé's first parameter.
vfThe volumetric function.
Returns
A hyperelastic material model.

◆ makeInvariantBased()

template<int n, typename VolumetricFunction = VF0>
auto Ikarus::Materials::makeInvariantBased ( const typename InvariantBased< n >::MaterialParameters &  mu,
const typename InvariantBased< n >::Exponents  pex,
const typename InvariantBased< n >::Exponents  qex,
double  K = 0.0,
const VolumetricFunction &  vf = VolumetricFunction{} 
)
inline
Template Parameters
nNumber of material parameters.
VolumetricFunctionType of the volumetric function.
Parameters
muThe shear parameters (mu_i).
pexThe exponents related to the first invariant.
qexThe exponents related to the second invariant.
KBulk modulus (or) Lamé's first parameter.
vfThe volumetric function.
Returns
A hyperelastic material model.

◆ makeMooneyRivlin()

template<typename VolumetricFunction = VF0>
auto Ikarus::Materials::makeMooneyRivlin ( const typename InvariantBased< 2 >::MaterialParameters &  mu,
double  K = 0.0,
const VolumetricFunction &  vf = VolumetricFunction{} 
)
inline
Template Parameters
VolumetricFunctionType of the volumetric function.
Parameters
muThe shear parameters (mu_i).
KBulk modulus (or) Lamé's first parameter.
vfThe volumetric function.
Returns
A hyperelastic material model.

◆ makeOgden()

template<int n, PrincipalStretchTags tag, typename VolumetricFunction = VF0>
auto Ikarus::Materials::makeOgden ( const typename Ogden< n, tag >::MaterialParameters &  mu,
const typename Ogden< n, tag >::MaterialExponents  alpha,
double  K = 0.0,
const VolumetricFunction &  vf = VolumetricFunction{} 
)
inline
Template Parameters
nNumber of Ogden material parameters.
PrincipalStretchTagsType of the principal stretches, either total or deviatoric.
VolumetricFunctionType of the volumetric function.
Parameters
muThe shear parameters (mu_i).
alphaThe (exponential) parameters (alpha_i).
KBulk modulus (or) Lamé's first parameter.
vfThe volumetric function.
Returns
A hyperelastic material model.

◆ makeVanishingStrain()

template<MatrixIndexPair... stressIndexPair, typename MaterialImpl >
auto Ikarus::Materials::makeVanishingStrain ( MaterialImpl  mat)
Template Parameters
matrixIndexPairThe array of MatrixIndexPair representing fixed strain components.
MaterialImplThe underlying material model.
Parameters
matThe underlying material model.
p_tolTolerance for stress reduction.
Returns
VanishingStress The created VanishingStress material.
Here is the caller graph for this function:

◆ makeVanishingStress()

template<MatrixIndexPair... stressIndexPair, typename MaterialImpl >
auto Ikarus::Materials::makeVanishingStress ( MaterialImpl  mat,
typename MaterialImpl::ScalarType  p_tol = 1e-12 
)
Template Parameters
matrixIndexPairThe array of MatrixIndexPair representing fixed stress components.
MaterialImplThe underlying material model.
Parameters
matThe underlying material model.
p_tolTolerance for stress reduction.
Returns
VanishingStress The created VanishingStress material.
Here is the caller graph for this function:

◆ makeYeoh()

template<typename VolumetricFunction = VF0>
auto Ikarus::Materials::makeYeoh ( const typename InvariantBased< 3 >::MaterialParameters &  mu,
double  K = 0.0,
const VolumetricFunction &  vf = VolumetricFunction{} 
)
inline
Template Parameters
VolumetricFunctionType of the volumetric function.
Parameters
muThe shear parameters (mu_i).
KBulk modulus (or) Lamé's first parameter.
vfThe volumetric function.
Returns
A hyperelastic material model.

◆ planeStrain()

template<typename MaterialImpl >
auto Ikarus::Materials::planeStrain ( const MaterialImpl &  mat)

The output is as follows for the stress and material tangent (in Voigt notation):

\[ \BS(\BE) \rightarrow \begin{bmatrix} S_{11} \\ S_{22} \\ S_{12} \end{bmatrix}, \quad \BBC(\BE) \rightarrow \begin{bmatrix} C_{11} & C_{12} & C_{13} \\ C_{21} & C_{22} & C_{23} \\ C_{31} & C_{32} & C_{33} \end{bmatrix} \]

Template Parameters
MaterialImplThe underlying material model.
Parameters
matThe underlying material model.
Returns
VanishingStrain The created VanishingStrain material for plane strain case.

◆ planeStress()

template<typename MaterialImpl >
auto Ikarus::Materials::planeStress ( const MaterialImpl &  mat,
typename MaterialImpl::ScalarType  tol = 1e-8 
)
Template Parameters
MaterialImplThe underlying material model.
Parameters
matThe underlying material model.
tolTolerance for stress reduction.
Returns
VanishingStress The created VanishingStress material for plane stress.

◆ shellMaterial()

template<typename MaterialImpl >
auto Ikarus::Materials::shellMaterial ( const MaterialImpl &  mat,
typename MaterialImpl::ScalarType  tol = 1e-8 
)
Template Parameters
MaterialImplThe underlying material model.
Parameters
matThe underlying material model.
tolTolerance for stress reduction.
Returns
VanishingStress The created VanishingStress material for plane stress.