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... | |
using Ikarus::Materials::ArrudaBoyce = typedef ArrudaBoyceT<double> |
using Ikarus::Materials::BlatzKo = typedef BlatzKoT<double> |
using Ikarus::Materials::Gent = typedef GentT<double> |
using Ikarus::Materials::InvariantBased = typedef InvariantBasedT<double, n> |
using Ikarus::Materials::LinearElasticity = typedef LinearElasticityT<double> |
using Ikarus::Materials::NeoHooke = typedef NeoHookeT<double> |
using Ikarus::Materials::NoVolumetricPart = typedef Volumetric<VF0> |
using Ikarus::Materials::Ogden = typedef OgdenT<double, n, tag> |
using Ikarus::Materials::StVenantKirchhoff = typedef StVenantKirchhoffT<double> |
auto Ikarus::Materials::beamMaterial | ( | const MaterialImpl & | mat, |
typename MaterialImpl::ScalarType | tol = 1e-8 |
||
) |
MaterialImpl | The underlying material model. |
mat | The underlying material model. |
p_tol | Tolerance for stress reduction. |
consteval bool Ikarus::Materials::hasCorrectSize | ( | ) |
The given strain quantity has to be a Eigen::Vector6 or a Eigen::Matrix3
MAT | Type of the material. |
S | Type of the strains. |
|
inline |
VolumetricFunction | Type of the volumetric function. |
matPar | The Arruda-Boyce material parameters (C and lambdaM). |
K | Bulk modulus (or) Lamé's first parameter. |
vf | The volumetric function. |
|
inline |
mu | The shear modulus. |
|
inline |
VolumetricFunction | Type of the volumetric function. |
matPar | The Gent material parameters (mu and Jm). |
K | Bulk modulus (or) Lamé's first parameter. |
vf | The volumetric function. |
|
inline |
n | Number of material parameters. |
VolumetricFunction | Type of the volumetric function. |
mu | The shear parameters (mu_i). |
pex | The exponents related to the first invariant. |
qex | The exponents related to the second invariant. |
K | Bulk modulus (or) Lamé's first parameter. |
vf | The volumetric function. |
|
inline |
VolumetricFunction | Type of the volumetric function. |
mu | The shear parameters (mu_i). |
K | Bulk modulus (or) Lamé's first parameter. |
vf | The volumetric function. |
|
inline |
n | Number of Ogden material parameters. |
PrincipalStretchTags | Type of the principal stretches, either total or deviatoric. |
VolumetricFunction | Type of the volumetric function. |
mu | The shear parameters (mu_i). |
alpha | The (exponential) parameters (alpha_i). |
K | Bulk modulus (or) Lamé's first parameter. |
vf | The volumetric function. |
auto Ikarus::Materials::makeVanishingStrain | ( | MaterialImpl | mat | ) |
matrixIndexPair | The array of MatrixIndexPair representing fixed strain components. |
MaterialImpl | The underlying material model. |
mat | The underlying material model. |
p_tol | Tolerance for stress reduction. |
auto Ikarus::Materials::makeVanishingStress | ( | MaterialImpl | mat, |
typename MaterialImpl::ScalarType | p_tol = 1e-12 |
||
) |
matrixIndexPair | The array of MatrixIndexPair representing fixed stress components. |
MaterialImpl | The underlying material model. |
mat | The underlying material model. |
p_tol | Tolerance for stress reduction. |
|
inline |
VolumetricFunction | Type of the volumetric function. |
mu | The shear parameters (mu_i). |
K | Bulk modulus (or) Lamé's first parameter. |
vf | The volumetric function. |
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} \]
MaterialImpl | The underlying material model. |
mat | The underlying material model. |
auto Ikarus::Materials::planeStress | ( | const MaterialImpl & | mat, |
typename MaterialImpl::ScalarType | tol = 1e-8 |
||
) |
MaterialImpl | The underlying material model. |
mat | The underlying material model. |
tol | Tolerance for stress reduction. |
auto Ikarus::Materials::shellMaterial | ( | const MaterialImpl & | mat, |
typename MaterialImpl::ScalarType | tol = 1e-8 |
||
) |
MaterialImpl | The underlying material model. |
mat | The underlying material model. |
tol | Tolerance for stress reduction. |