OGS
MaterialLib::Solids::LinearElasticOrthotropic< DisplacementDim >::EvaluatedMaterialProperties Struct Reference

Detailed Description

template<int DisplacementDim>
struct MaterialLib::Solids::LinearElasticOrthotropic< DisplacementDim >::EvaluatedMaterialProperties

Definition at line 25 of file LinearElasticOrthotropic.h.

#include <LinearElasticOrthotropic.h>

Public Member Functions

constexpr double E (int const i) const
 Youngs moduli for 1-based indices.
 
constexpr double G (int const i, int const j) const
 Shear moduli for 1-based indices.
 
constexpr double nu (int const i, int const j) const
 Poisson's ratios for 1-based indices.
 

Public Attributes

std::array< double, 3 > youngs_moduli
 
std::array< double, 3 > shear_moduli
 
std::array< double, 3 > poissons_ratios
 

Member Function Documentation

◆ E()

template<int DisplacementDim>
double MaterialLib::Solids::LinearElasticOrthotropic< DisplacementDim >::EvaluatedMaterialProperties::E ( int const i) const
inlineconstexpr

◆ G()

template<int DisplacementDim>
double MaterialLib::Solids::LinearElasticOrthotropic< DisplacementDim >::EvaluatedMaterialProperties::G ( int const i,
int const j ) const
inlineconstexpr

Shear moduli for 1-based indices.

Definition at line 35 of file LinearElasticOrthotropic.h.

36 {
37 assert(i == 1 || i == 2 || i == 3);
38 assert(j == 1 || j == 2 || j == 3);
39 if (i == 1 && j == 2)
40 {
41 return shear_moduli[0];
42 }
43 if (i == 2 && j == 3)
44 {
45 return shear_moduli[1];
46 }
47 if (i == 1 && j == 3)
48 {
49 return shear_moduli[2];
50 }
51
52 return std::numeric_limits<double>::quiet_NaN();
53 }

References MaterialLib::Solids::LinearElasticOrthotropic< DisplacementDim >::EvaluatedMaterialProperties::shear_moduli.

◆ nu()

template<int DisplacementDim>
double MaterialLib::Solids::LinearElasticOrthotropic< DisplacementDim >::EvaluatedMaterialProperties::nu ( int const i,
int const j ) const
inlineconstexpr

Poisson's ratios for 1-based indices.

Definition at line 56 of file LinearElasticOrthotropic.h.

57 {
58 assert(i == 1 || i == 2 || i == 3);
59 assert(j == 1 || j == 2 || j == 3);
60 if (i == 1 && j == 2)
61 {
62 return poissons_ratios[0];
63 }
64 if (i == 2 && j == 3)
65 {
66 return poissons_ratios[1];
67 }
68 if (i == 1 && j == 3)
69 {
70 return poissons_ratios[2];
71 }
72
73 // The next set is scaled by Youngs modulus s.t.
74 // nu_ji = nu_ij * E_j/E_i.
75 if (i == 2 && j == 1)
76 {
77 return poissons_ratios[0] * E(i) / E(j);
78 }
79 if (i == 3 && j == 2)
80 {
81 return poissons_ratios[1] * E(i) / E(j);
82 }
83 if (i == 3 && j == 1)
84 {
85 return poissons_ratios[2] * E(i) / E(j);
86 }
87
88 return std::numeric_limits<double>::quiet_NaN();
89 }
constexpr double E(int const i) const
Youngs moduli for 1-based indices.

References MaterialLib::Solids::LinearElasticOrthotropic< DisplacementDim >::EvaluatedMaterialProperties::E(), and MaterialLib::Solids::LinearElasticOrthotropic< DisplacementDim >::EvaluatedMaterialProperties::poissons_ratios.

Member Data Documentation

◆ poissons_ratios

template<int DisplacementDim>
std::array<double, 3> MaterialLib::Solids::LinearElasticOrthotropic< DisplacementDim >::EvaluatedMaterialProperties::poissons_ratios

◆ shear_moduli

template<int DisplacementDim>
std::array<double, 3> MaterialLib::Solids::LinearElasticOrthotropic< DisplacementDim >::EvaluatedMaterialProperties::shear_moduli

◆ youngs_moduli

template<int DisplacementDim>
std::array<double, 3> MaterialLib::Solids::LinearElasticOrthotropic< DisplacementDim >::EvaluatedMaterialProperties::youngs_moduli

The documentation for this struct was generated from the following file: