SpECTRE  v2024.06.18
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 [182]) 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 [182]) 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 [182]) 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 [182] with the counteracting internal forces $$\boldsymbol{f} = -\boldsymbol{f}_\mathrm{ext}$$). For small deformations (see e.g. [182], 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 [182]) that describes the elastic properties of the material (see Elasticity::ConstitutiveRelations::ConstitutiveRelation).

## Function Documentation

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 [182])

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 [182])

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 [182])

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.