SpECTRE  v2024.09.29
Elasticity Namespace Reference

Items related to solving elasticity problems. More...

Namespaces

namespace  Actions
 Actions related to solving Elasticity systems.
 
namespace  ConstitutiveRelations
 Constitutive (stress-strain) relations that characterize the elastic properties of a material.
 

Classes

struct  FirstOrderSystem
 The linear elasticity equation formulated as a set of coupled first-order PDEs. More...
 
struct  Fluxes
 Compute the fluxes \(F^i_A\) for the Elasticity equation on a flat metric in Cartesian coordinates. More...
 

Functions

template<size_t Dim>
void primal_fluxes (gsl::not_null< tnsr::II< DataVector, Dim > * > minus_stress, const tnsr::iJ< DataVector, Dim > &deriv_displacement, const ConstitutiveRelations::ConstitutiveRelation< Dim > &constitutive_relation, const tnsr::I< DataVector, Dim > &coordinates)
 Compute the fluxes \(F^{ij}=Y^{ijkl}(x) S_{kl}(x)=-T^{ij}\) for the Elasticity equation.
 
template<size_t Dim>
void add_curved_sources (gsl::not_null< tnsr::I< DataVector, Dim > * > source_for_displacement, const tnsr::Ijj< DataVector, Dim > &christoffel_second_kind, const tnsr::i< DataVector, Dim > &christoffel_contracted, const tnsr::II< DataVector, Dim > &stress)
 Add the contribution \(-\Gamma^i_{ik}T^{kj} - \Gamma^j_{ik}T^{ik}\) to the displacement source for the curved-space elasticity equations on a metric \(\gamma_{ij}\). More...
 
template<typename DataType , size_t Dim>
void strain (gsl::not_null< tnsr::ii< DataType, Dim > * > strain, const tnsr::iJ< DataType, Dim > &deriv_displacement)
 The symmetric strain \(S_{ij} = \partial_{(i} \xi_{j)}\) on a flat background in Cartesian coordinates.
 
template<typename DataType , size_t Dim>
void strain (gsl::not_null< tnsr::ii< DataType, Dim > * > strain, const tnsr::iJ< DataType, Dim > &deriv_displacement, const tnsr::ii< DataType, Dim > &metric, const tnsr::ijj< DataType, Dim > &deriv_metric, const tnsr::ijj< DataType, Dim > &christoffel_first_kind, const tnsr::I< DataType, Dim > &displacement)
 The symmetric strain \(S_{ij} = \nabla_{(i} \gamma_{j)k} \xi^k = \partial_{(i} \gamma_{j)k} \xi^k - \Gamma_{kij} \xi^k\) on a background metric \(\gamma_{ij}\).
 
template<size_t Dim>
void strain (gsl::not_null< tnsr::ii< DataVector, Dim > * > strain, const tnsr::I< DataVector, Dim > &displacement, const Mesh< Dim > &mesh, const InverseJacobian< DataVector, Dim, Frame::ElementLogical, Frame::Inertial > &inv_jacobian)
 The symmetric strain \(S_{ij} = \partial_{(i} \xi_{j)}\) on a flat background in Cartesian coordinates. More...
 
template<size_t Dim>
void potential_energy_density (gsl::not_null< Scalar< DataVector > * > result, const tnsr::ii< DataVector, Dim > &strain, const tnsr::II< DataVector, Dim > &stress)
 The potential energy density \(U=-\frac{1}{2}S_{ij}T^{ij}\) stored in the deformation of the elastic material (see Eq. (11.25) in [190]) More...
 
template<size_t Dim>
void potential_energy_density (gsl::not_null< Scalar< DataVector > * > result, const tnsr::ii< DataVector, Dim > &strain, const tnsr::I< DataVector, Dim > &coordinates, const ConstitutiveRelations::ConstitutiveRelation< Dim > &constitutive_relation)
 The potential energy density \(U=-\frac{1}{2}S_{ij}T^{ij}\) stored in the deformation of the elastic material (see Eq. (11.25) in [190]) More...
 
template<size_t Dim>
Scalar< DataVectorpotential_energy_density (const tnsr::ii< DataVector, Dim > &strain, const tnsr::I< DataVector, Dim > &coordinates, const ConstitutiveRelations::ConstitutiveRelation< Dim > &constitutive_relation)
 The potential energy density \(U=-\frac{1}{2}S_{ij}T^{ij}\) stored in the deformation of the elastic material (see Eq. (11.25) in [190]) More...
 

Detailed Description

Items related to solving elasticity problems.

Details

In elasticity problems we solve for the displacement vector field \(\boldsymbol{\xi}\) in an elastic material that responds to external forces, stresses or deformations. In this static approximation the equations of motion reduce to the elliptic equations

\[ \nabla_i T^{ij} = f_\mathrm{ext}^j \]

that describes a state of equilibrium between the stresses \(T^{ij}\) within the material and the external body forces \(\boldsymbol{f}_\mathrm{ext}\) (Eqns. 11.13 and 11.14 in [190] with the counteracting internal forces \(\boldsymbol{f} = -\boldsymbol{f}_\mathrm{ext}\)). For small deformations (see e.g. [190], Section 11.3.2 for a discussion) the stress is related to the strain \(S_{ij}=\nabla_{(i}\xi_{j)}\) by a linear constitutive relation \(T^{ij}=-Y^{ijkl}S_{kl}\) (Eq. 11.17 in [190]) that describes the elastic properties of the material (see Elasticity::ConstitutiveRelations::ConstitutiveRelation).

Function Documentation

◆ add_curved_sources()

template<size_t Dim>
void Elasticity::add_curved_sources ( gsl::not_null< tnsr::I< DataVector, Dim > * >  source_for_displacement,
const tnsr::Ijj< DataVector, Dim > &  christoffel_second_kind,
const tnsr::i< DataVector, Dim > &  christoffel_contracted,
const tnsr::II< DataVector, Dim > &  stress 
)

Add the contribution \(-\Gamma^i_{ik}T^{kj} - \Gamma^j_{ik}T^{ik}\) to the displacement source for the curved-space elasticity equations on a metric \(\gamma_{ij}\).

These sources arise from the non-principal part of the divergence on a curved background.

◆ potential_energy_density() [1/3]

template<size_t Dim>
Scalar< DataVector > Elasticity::potential_energy_density ( const tnsr::ii< DataVector, Dim > &  strain,
const tnsr::I< DataVector, Dim > &  coordinates,
const ConstitutiveRelations::ConstitutiveRelation< Dim > &  constitutive_relation 
)

The potential energy density \(U=-\frac{1}{2}S_{ij}T^{ij}\) stored in the deformation of the elastic material (see Eq. (11.25) in [190])

Note that the two-dimensional instantiation of this function assumes that only the terms of \(S_{ij}T^{ij}\) where both \(i\) and \(j\) correspond to one of the computational dimensions contribute to the sum. This is the case for the plane-stress approximation employed in the two-dimensional Elasticity::ConstitutiveRelations::IsotropicHomogeneous, for example, where \(T^{i3}=0=T^{3i}\).

◆ potential_energy_density() [2/3]

template<size_t Dim>
void Elasticity::potential_energy_density ( gsl::not_null< Scalar< DataVector > * >  result,
const tnsr::ii< DataVector, Dim > &  strain,
const tnsr::I< DataVector, Dim > &  coordinates,
const ConstitutiveRelations::ConstitutiveRelation< Dim > &  constitutive_relation 
)

The potential energy density \(U=-\frac{1}{2}S_{ij}T^{ij}\) stored in the deformation of the elastic material (see Eq. (11.25) in [190])

Note that the two-dimensional instantiation of this function assumes that only the terms of \(S_{ij}T^{ij}\) where both \(i\) and \(j\) correspond to one of the computational dimensions contribute to the sum. This is the case for the plane-stress approximation employed in the two-dimensional Elasticity::ConstitutiveRelations::IsotropicHomogeneous, for example, where \(T^{i3}=0=T^{3i}\).

◆ potential_energy_density() [3/3]

template<size_t Dim>
void Elasticity::potential_energy_density ( gsl::not_null< Scalar< DataVector > * >  result,
const tnsr::ii< DataVector, Dim > &  strain,
const tnsr::II< DataVector, Dim > &  stress 
)

The potential energy density \(U=-\frac{1}{2}S_{ij}T^{ij}\) stored in the deformation of the elastic material (see Eq. (11.25) in [190])

Note that the two-dimensional instantiation of this function assumes that only the terms of \(S_{ij}T^{ij}\) where both \(i\) and \(j\) correspond to one of the computational dimensions contribute to the sum. This is the case for the plane-stress approximation employed in the two-dimensional Elasticity::ConstitutiveRelations::IsotropicHomogeneous, for example, where \(T^{i3}=0=T^{3i}\).

◆ strain()

template<size_t Dim>
void Elasticity::strain ( gsl::not_null< tnsr::ii< DataVector, Dim > * >  strain,
const tnsr::I< DataVector, Dim > &  displacement,
const Mesh< Dim > &  mesh,
const InverseJacobian< DataVector, Dim, Frame::ElementLogical, Frame::Inertial > &  inv_jacobian 
)

The symmetric strain \(S_{ij} = \partial_{(i} \xi_{j)}\) on a flat background in Cartesian coordinates.

Note that this function involves a numeric differentiation of the displacement vector.