Tags.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <string>
7 
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{u}\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 \f[
23  * \nabla_i T^{ij} = f_\mathrm{ext}^j
24  * \f] that describes a state of equilibrium between the stresses \f$T^{ij}\f$
25  * within the material and the external body forces
26  * \f$\boldsymbol{f}_\mathrm{ext}\f$ (Eqns. 11.13 and 11.14 in
27  * \cite ThorneBlandford2017). For small deformations (see e.g.
28  * \cite ThorneBlandford2017, Section 11.3.2 for a discussion) the stress is
29  * related to the strain \f$S_{ij}=\nabla_{(i}u_{j)}\f$ by a linear constitutive
30  * relation \f$T^{ij}=-Y^{ijkl}S_{kl}\f$ (Eq. 11.17 in
31  * \cite ThorneBlandford2017) that describes the elastic properties of the
32  * material (see `Elasticity::ConstitutiveRelations::ConstitutiveRelation`).
33  */
34 namespace Elasticity {
35 namespace Tags {
36 
37 /*!
38  * \brief The material displacement field \f$\boldsymbol{u}(x)\f$
39  */
40 template <size_t Dim>
42  using type = tnsr::I<DataVector, Dim>;
43  static std::string name() noexcept { return "Displacement"; }
44 };
45 
46 /*!
47  * \brief The symmetric strain \f$S_{ij}=\nabla_{(i}u_{j)}\f$, describing the
48  * deformation of the elastic material.
49  */
50 template <size_t Dim>
52  using type = tnsr::ii<DataVector, Dim>;
53  static std::string name() noexcept { return "Strain"; }
54 };
55 
56 /*!
57  * \brief The symmetric stress \f$T^{ij}\f$, describing pressure within the
58  * elastic material.
59  */
60 template <size_t Dim>
62  using type = tnsr::II<DataVector, Dim>;
63  static std::string name() noexcept { return "Stress"; }
64 };
65 
66 } // namespace Tags
67 } // namespace Elasticity
The material displacement field .
Definition: Tags.hpp:41
Tags for the DataBox inherit from this type.
Definition: DataBoxTag.hpp:65
Items related to solving elasticity problems.
Definition: Tags.hpp:34
The symmetric strain , describing the deformation of the elastic material.
Definition: Tags.hpp:51
Definition: DataBoxTag.hpp:29
Defines a list of useful type aliases for tensors.
Stores a collection of function values.
Definition: DataVector.hpp:42
Defines classes SimpleTag, PrefixTag, ComputeTag and several functions for retrieving tag info...
The symmetric stress , describing pressure within the elastic material.
Definition: Tags.hpp:61