SpECTRE
v2024.09.29
|
A cubic crystalline material. More...
#include <CubicCrystal.hpp>
Classes | |
struct | C_11 |
struct | C_12 |
struct | C_44 |
Public Types | |
using | options = tmpl::list< C_11, C_12, C_44 > |
Public Member Functions | |
CubicCrystal (const CubicCrystal &)=default | |
CubicCrystal & | operator= (const CubicCrystal &)=default |
CubicCrystal (CubicCrystal &&)=default | |
CubicCrystal & | operator= (CubicCrystal &&)=default |
CubicCrystal (double c_11, double c_12, double c_44) | |
std::unique_ptr< ConstitutiveRelation< 3 > > | get_clone () const override |
Returns a std::unique_ptr pointing to a copy of the ConstitutiveRelation . More... | |
void | stress (gsl::not_null< tnsr::II< DataVector, 3 > * > stress, const tnsr::ii< DataVector, 3 > &strain, const tnsr::I< DataVector, 3 > &x) const override |
The constitutive relation that characterizes the elastic properties of a material. | |
double | c_11 () const |
The 1st group parameter \(c_{11} = \frac{1 - \nu}{\nu} \lambda\). | |
double | c_12 () const |
The 2nd group parameter; the \(\mathrm{Lam\acute{e}}\) parameter \(c_{12} = \lambda\). | |
double | c_44 () const |
The 3rd group parameter; the shear modulus (rigidity) \(c_{44} = \mu\). | |
double | youngs_modulus () const |
The Young's modulus \(E\). | |
double | poisson_ratio () const |
The Poisson ratio \(\nu\). | |
void | pup (PUP::er &) override |
CubicCrystal (CkMigrateMessage *) | |
WRAPPED_PUPable_decl_base_template (SINGLE_ARG(ConstitutiveRelation< 3 >), CubicCrystal) | |
Public Member Functions inherited from Elasticity::ConstitutiveRelations::ConstitutiveRelation< 3 > | |
ConstitutiveRelation (const ConstitutiveRelation &)=default | |
ConstitutiveRelation (ConstitutiveRelation &&)=default | |
ConstitutiveRelation & | operator= (const ConstitutiveRelation &)=default |
ConstitutiveRelation & | operator= (ConstitutiveRelation &&)=default |
WRAPPED_PUPable_abstract (ConstitutiveRelation) | |
virtual std::unique_ptr< ConstitutiveRelation< Dim > > | get_clone () const=0 |
Returns a std::unique_ptr pointing to a copy of the ConstitutiveRelation . More... | |
virtual void | stress (gsl::not_null< tnsr::II< DataVector, Dim > * > stress, const tnsr::ii< DataVector, Dim > &strain, const tnsr::I< DataVector, Dim > &x) const=0 |
The constitutive relation that characterizes the elastic properties of a material. | |
Static Public Attributes | |
static constexpr size_t | volume_dim = 3 |
static constexpr Options::String | help |
Static Public Attributes inherited from Elasticity::ConstitutiveRelations::ConstitutiveRelation< 3 > | |
static constexpr size_t | volume_dim |
A cubic crystalline material.
For a cubic crystalline material the Elasticity tensor in the linear constitutive relation \(T^{ij}=-Y^{ijkl}S_{kl}\) reduces to
\[ Y^{ijkl} = \begin{cases} c_{11} & \mathrm{for}\; i=j=k=l \\ c_{12} & \mathrm{for}\; i=j,k=l,i \neq k \\ c_{44} & \mathrm{for}\; i=k,j=l,i \neq j \;\mathrm{or}\; i=l,j=k,i\neq j \\ \end{cases} \]
with the three independent parameters: the \(\mathrm{Lam\acute{e}}\) parameter \(\lambda\), the Shear modulus \(\mu\) and the Poisson ratio \(\nu\). In the parametrization chosen in this implementation we use the experimental group parameters \(c_{11}\), \(c_{12}\) and \(c_{44}\), related by;
\[ c_{11} = \frac{1 - \nu}{\nu} \lambda = \frac{(1 - \nu)E}{(1 + \nu)(1 - 2\nu)}, \quad c_{12} = \lambda = \frac{E\nu}{(1 + \nu)(1 - 2\nu)}, \quad c_{44} = \mu \]
and inversely;
\[ E = \frac{(c_{11} + 2c_{12})(c_{11} - c_{12})}{c_{11} + c_{12}}, \quad \nu = \left(1 + \frac{c_{11}}{c_{12}}\right)^{-1}, \quad \mu = c_{44} \]
The stress-strain relation then reduces to
\[ T^{ij} = \begin{cases} -(c_{11} - c_{12}) S^{ij} - c_{12} \mathrm{Tr}(S) & \mathrm{for}\; i=j \\ -2 c_{44} S^{ij} & \mathrm{for}\; i \neq j \\ \end{cases} \]
In the case where the shear modulus satisfies \(c_{44} = \frac{c_{11}-c_{12}}{2}\) the constitutive relation is that of an isotropic material (see Elasticity::ConstitutiveRelations::IsotropicHomogeneous
).
|
overridevirtual |
Returns a std::unique_ptr
pointing to a copy of the ConstitutiveRelation
.
Implements Elasticity::ConstitutiveRelations::ConstitutiveRelation< 3 >.
|
staticconstexpr |