SpECTRE
v2024.12.16
|
An isotropic and homogeneous material. More...
#include <IsotropicHomogeneous.hpp>
Classes | |
struct | BulkModulus |
struct | ShearModulus |
Public Types | |
using | options = tmpl::list< BulkModulus, ShearModulus > |
Public Member Functions | |
IsotropicHomogeneous (const IsotropicHomogeneous &)=default | |
IsotropicHomogeneous & | operator= (const IsotropicHomogeneous &)=default |
IsotropicHomogeneous (IsotropicHomogeneous &&)=default | |
IsotropicHomogeneous & | operator= (IsotropicHomogeneous &&)=default |
IsotropicHomogeneous (double bulk_modulus, double shear_modulus) | |
std::unique_ptr< ConstitutiveRelation< Dim > > | 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, Dim > * > stress, const tnsr::ii< DataVector, Dim > &strain, const tnsr::I< DataVector, Dim > &x) const override |
The constitutive relation that characterizes the elastic properties of a material. More... | |
double | bulk_modulus () const |
The bulk modulus (or incompressibility) \(K\). | |
double | shear_modulus () const |
The shear modulus (or rigidity) \(\mu\). | |
double | lame_parameter () const |
The Lamé parameter \(\lambda\). | |
double | youngs_modulus () const |
The Young's modulus \(E\). | |
double | poisson_ratio () const |
The Poisson ratio \(\nu\). | |
void | pup (PUP::er &) override |
IsotropicHomogeneous (CkMigrateMessage *) | |
WRAPPED_PUPable_decl_base_template (SINGLE_ARG(ConstitutiveRelation< Dim >), IsotropicHomogeneous) | |
Public Member Functions inherited from Elasticity::ConstitutiveRelations::ConstitutiveRelation< Dim > | |
ConstitutiveRelation (const ConstitutiveRelation &)=default | |
ConstitutiveRelation & | operator= (const ConstitutiveRelation &)=default |
ConstitutiveRelation (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. More... | |
Static Public Attributes | |
static constexpr size_t | volume_dim = Dim |
static constexpr Options::String | help |
Static Public Attributes inherited from Elasticity::ConstitutiveRelations::ConstitutiveRelation< Dim > | |
static constexpr size_t | volume_dim = Dim |
An isotropic and homogeneous material.
For an isotropic and homogeneous material the linear constitutive relation \(T^{ij}=-Y^{ijkl}S_{kl}\) reduces to
\[ Y^{ijkl} = \lambda \delta^{ij}\delta^{kl} + \mu \left(\delta^{ik}\delta^{jl} + \delta^{il}\delta^{jk}\right) \\ \implies \quad T^{ij} = -\lambda \mathrm{Tr}(S) \delta^{ij} - 2\mu S^{ij} \]
with the Lamé parameter \(\lambda\) and the shear modulus (or rigidity) \(\mu\). In the parametrization chosen in this implementation we use the bulk modulus (or incompressibility)
\[ K=\lambda + \frac{2}{3}\mu \]
instead of the Lamé parameter. In this parametrization the stress-strain relation
\[ T^{ij} = -K \mathrm{Tr}(S) \delta^{ij} - 2\mu\left(S^{ij} - \frac{1}{3}\mathrm{Tr}(S)\delta^{ij}\right) \]
decomposes into a scalar and a traceless part (Eq. 11.18 in [191]). Parameters also often used in this context are the Young's modulus
\[ E=\frac{9K\mu}{3K+\mu}=\frac{\mu(3\lambda+2\mu)}{\lambda+\mu} \]
and the Poisson ratio
\[ \nu=\frac{3K-2\mu}{2(3K+\mu)}=\frac{\lambda}{2(\lambda+\mu)}\text{.} \]
Inversely, these relations read:
\[ K =\frac{E}{3(1-2\nu)}, \quad \lambda =\frac{E\nu}{(1+\nu)(1-2\nu)}, \quad \mu =\frac{E}{2(1+\nu)} \]
In two dimensions this implementation reduces to the plane-stress approximation. We assume that all stresses apply in the plane of the computational domain, which corresponds to scenarios of in-plane stretching and shearing of thin slabs of material. Since orthogonal stresses vanish as \(T^{i3}=0=T^{3i}\) we find \(\mathrm{Tr}(S)=\frac{2\mu}{\lambda + 2\mu}\mathrm{Tr}^{(2)}(S)\), where \(\mathrm{Tr}^{(2)}\) denotes that the trace only applies to the two dimensions within the plane. The constitutive relation thus reduces to
\begin{align} T^{ij}=&-\frac{2\lambda\mu}{\lambda + 2\mu}\mathrm{Tr}^{(2)}(S)\delta^{ij} - 2\mu S^{ij} \\ =&-\frac{E\nu}{1-\nu^2}\mathrm{Tr}^{(2)}(S)\delta^{ij} - \frac{E}{1+\nu}S^{ij} \end{align}
which is non-zero only in the directions of the plane. Since the stresses are also assumed to be constant along the thickness of the plane \(\partial_3T^{ij}=0\) the elasticity problem \(-\partial_i T^{ij}=F^j\) reduces to two dimensions.
|
overridevirtual |
Returns a std::unique_ptr
pointing to a copy of the ConstitutiveRelation
.
Implements Elasticity::ConstitutiveRelations::ConstitutiveRelation< Dim >.
|
overridevirtual |
The constitutive relation that characterizes the elastic properties of a material.
Implements Elasticity::ConstitutiveRelations::ConstitutiveRelation< Dim >.
|
staticconstexpr |