Public Types | Static Public Attributes | List of all members
Elasticity::FirstOrderSystem< Dim > Struct Template Reference

The linear elasticity equation formulated as a set of coupled first-order PDEs. More...

#include <FirstOrderSystem.hpp>

Public Types

using primal_fields = tmpl::list< displacement >
 
using auxiliary_fields = tmpl::list< strain >
 
using primal_fluxes = tmpl::list< minus_stress >
 
using auxiliary_fluxes = tmpl::list<::Tags::Flux< strain, tmpl::size_t< Dim >, Frame::Inertial > >
 
using background_fields = tmpl::list<>
 
using inv_metric_tag = void
 
using fluxes_computer = Fluxes< Dim >
 
using sources_computer = Sources< Dim >
 
using boundary_conditions_base = elliptic::BoundaryConditions::BoundaryCondition< Dim, tmpl::append< tmpl::list< elliptic::BoundaryConditions::Registrars::AnalyticSolution< FirstOrderSystem >, BoundaryConditions::Registrars::Zero< Dim, elliptic::BoundaryConditionType::Dirichlet >, BoundaryConditions::Registrars::Zero< Dim, elliptic::BoundaryConditionType::Neumann > >, tmpl::conditional_t< Dim==3, tmpl::list< BoundaryConditions::Registrars::LaserBeam >, tmpl::list<> > > >
 

Static Public Attributes

static constexpr size_t volume_dim = Dim
 

Detailed Description

template<size_t Dim>
struct Elasticity::FirstOrderSystem< Dim >

The linear elasticity equation formulated as a set of coupled first-order PDEs.

This system formulates the elasticity equation \(\nabla_i T^{ij} = f_\mathrm{ext}^j\) (see Elasticity). It introduces the symmetric strain tensor \(S_{kl}\) as an auxiliary variable which satisfies the Elasticity::ConstitutiveRelations \(T^{ij} = -Y^{ijkl} S_{kl}\) with the material-specific elasticity tensor \(Y^{ijkl}\). Written as a set of coupled first-order PDEs, we get

\begin{align*} -\nabla_i Y^{ijkl} S_{kl} = f_\mathrm{ext}^j \\ -\nabla_{(k} \xi_{l)} + S_{kl} = 0 \end{align*}

The fluxes and sources in terms of the system variables \(\xi^j\) and \(S_{kl}\) are given by

\begin{align*} F^i_{\xi^j} &= Y^{ijkl}_{(\xi, S)} S_{kl} \\ S_{\xi^j} &= 0 \\ f_{\xi^j} &= f_\mathrm{ext}^j \\ F^i_{S_{kl}} &= \delta^{i}_{(k} \xi_{l)} \\ S_{S_{kl}} &= S_{kl} \\ f_{S_{kl}} &= 0 \text{.} \end{align*}

See Poisson::FirstOrderSystem for details on the first-order flux-formulation.


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