SpECTRE  v2024.04.12
Elasticity::ConstitutiveRelations::CubicCrystal Class Reference

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
 
CubicCrystaloperator= (const CubicCrystal &)=default
 
 CubicCrystal (CubicCrystal &&)=default
 
CubicCrystaloperator= (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
 
ConstitutiveRelationoperator= (const ConstitutiveRelation &)=default
 
ConstitutiveRelationoperator= (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
 

Detailed Description

A cubic crystalline material.

Details

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).

Member Function Documentation

◆ get_clone()

std::unique_ptr< ConstitutiveRelation< 3 > > Elasticity::ConstitutiveRelations::CubicCrystal::get_clone ( ) const
overridevirtual

Member Data Documentation

◆ help

constexpr Options::String Elasticity::ConstitutiveRelations::CubicCrystal::help
staticconstexpr
Initial value:
= {
"A constitutive relation that describes a cubic, crystalline material in "
"terms of the three independent group paremeters. The parameters "
"are measured in units of stress, typically Pascals."}

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