SpECTRE Documentation Coverage Report
Current view: top level - Elliptic/Systems/Elasticity - Tags.hpp Hit Total Coverage
Commit: 3c072f0ce967e2e56649d3fa12aa2a0e4fe2a42e Lines: 5 11 45.5 %
Date: 2024-04-23 20:50:18
Legend: Lines: hit not hit

          Line data    Source code
       1           0 : // Distributed under the MIT License.
       2             : // See LICENSE.txt for details.
       3             : 
       4             : #pragma once
       5             : 
       6             : #include <string>
       7             : 
       8             : #include "DataStructures/DataBox/Tag.hpp"
       9             : #include "DataStructures/Tensor/TypeAliases.hpp"
      10             : 
      11             : /// \cond
      12             : class DataVector;
      13             : /// \endcond
      14             : 
      15             : /*!
      16             :  * \ingroup EllipticSystemsGroup
      17             :  * \brief Items related to solving elasticity problems
      18             :  *
      19             :  * \details In elasticity problems we solve for the displacement vector
      20             :  * field \f$\boldsymbol{\xi}\f$ in an elastic material that responds to external
      21             :  * forces, stresses or deformations. In this static approximation the
      22             :  * equations of motion reduce to the elliptic equations
      23             :  *
      24             :  * \f[
      25             :  * \nabla_i T^{ij} = f_\mathrm{ext}^j
      26             :  * \f]
      27             :  *
      28             :  * that describes a state of equilibrium between the stresses \f$T^{ij}\f$
      29             :  * within the material and the external body forces
      30             :  * \f$\boldsymbol{f}_\mathrm{ext}\f$ (Eqns. 11.13 and 11.14 in
      31             :  * \cite ThorneBlandford2017 with the counteracting internal forces
      32             :  * \f$\boldsymbol{f} = -\boldsymbol{f}_\mathrm{ext}\f$). For small
      33             :  * deformations (see e.g. \cite ThorneBlandford2017, Section 11.3.2 for a
      34             :  * discussion) the stress is related to the strain
      35             :  * \f$S_{ij}=\nabla_{(i}\xi_{j)}\f$ by a linear constitutive relation
      36             :  * \f$T^{ij}=-Y^{ijkl}S_{kl}\f$ (Eq. 11.17 in \cite ThorneBlandford2017) that
      37             :  * describes the elastic properties of the material (see
      38             :  * `Elasticity::ConstitutiveRelations::ConstitutiveRelation`).
      39             :  */
      40             : namespace Elasticity {
      41             : namespace Tags {
      42             : 
      43             : /*!
      44             :  * \brief The material displacement field \f$\boldsymbol{u}(x)\f$
      45             :  */
      46             : template <size_t Dim>
      47           1 : struct Displacement : db::SimpleTag {
      48           0 :   using type = tnsr::I<DataVector, Dim>;
      49             : };
      50             : 
      51             : /*!
      52             :  * \brief The symmetric strain \f$S_{ij}=\nabla_{(i}u_{j)}\f$, describing the
      53             :  * deformation of the elastic material.
      54             :  */
      55             : template <size_t Dim>
      56           1 : struct Strain : db::SimpleTag {
      57           0 :   using type = tnsr::ii<DataVector, Dim>;
      58             : };
      59             : 
      60             : /*!
      61             :  * \brief The symmetric stress, i.e. $T^{ij}$, describing pressure within the
      62             :  * elastic material.
      63             :  */
      64             : template <size_t Dim>
      65           1 : struct Stress : db::SimpleTag {
      66           0 :   using type = tnsr::II<DataVector, Dim>;
      67             : };
      68             : 
      69             : /*!
      70             :  * \brief Minus the `Stress`, i.e. $-T^{ij}$. This tag can be used for the flux
      71             :  * in a first-order formulation of the elasticity system.
      72             :  */
      73             : template <size_t Dim>
      74           1 : struct MinusStress : db::SimpleTag {
      75           0 :   using type = tnsr::II<DataVector, Dim>;
      76             : };
      77             : 
      78             : /*!
      79             :  * \brief The energy density \f$U=-\frac{1}{2}S_{ij}T^{ij}\f$ stored in the
      80             :  * deformation of the elastic material.
      81             :  */
      82             : template <size_t Dim>
      83           1 : struct PotentialEnergyDensity : db::SimpleTag {
      84           0 :   using type = Scalar<DataVector>;
      85             : };
      86             : 
      87             : }  // namespace Tags
      88             : }  // namespace Elasticity

Generated by: LCOV version 1.14