SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
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 = implementation defined
 

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 c11=1ννλ.
 
double c_12 () const
 The 2nd group parameter; the Lame´ parameter c12=λ.
 
double c_44 () const
 The 3rd group parameter; the shear modulus (rigidity) c44=μ.
 
double youngs_modulus () const
 The Young's modulus E.
 
double poisson_ratio () const
 The Poisson ratio ν.
 
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 Tij=YijklSkl reduces to

Yijkl={c11fori=j=k=lc12fori=j,k=l,ikc44fori=k,j=l,ijori=l,j=k,ij

with the three independent parameters: the Lame´ parameter λ, the Shear modulus μ and the Poisson ratio ν. In the parametrization chosen in this implementation we use the experimental group parameters c11, c12 and c44, related by;

c11=1ννλ=(1ν)E(1+ν)(12ν),c12=λ=Eν(1+ν)(12ν),c44=μ

and inversely;

E=(c11+2c12)(c11c12)c11+c12,ν=(1+c11c12)1,μ=c44

The stress-strain relation then reduces to

Tij={(c11c12)Sijc12Tr(S)fori=j2c44Sijforij

In the case where the shear modulus satisfies c44=c11c122 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: