Tags.hpp
Go to the documentation of this file.
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 /// \file
5 /// Defines DataBox tags for the Poisson system
6 
7 #pragma once
8 
9 #include <string>
10 
13 
14 /// \cond
15 class DataVector;
16 /// \endcond
17 
18 /*!
19  * \ingroup EllipticSystemsGroup
20  * \brief Items related to solving a Poisson equation \f$-\Delta u(x)=f(x)\f$.
21  */
22 namespace Poisson {
23 
24 /*!
25  * \brief The scalar field \f$u(x)\f$ to solve for
26  */
27 struct Field : db::SimpleTag {
28  using type = Scalar<DataVector>;
29  static std::string name() noexcept { return "Field"; }
30 };
31 
32 /*!
33  * \brief The auxiliary field \f$\boldsymbol{v}(x)=\nabla u(x)\f$ to formulate
34  * the first-order Poisson equation \f$-\nabla \cdot \boldsymbol{v}(x) = f(x)\f$
35  */
36 template <size_t Dim>
38  using type = tnsr::I<DataVector, Dim, Frame::Inertial>;
39  static std::string name() noexcept { return "AuxiliaryField"; }
40 };
41 
42 } // namespace Poisson
The auxiliary field to formulate the first-order Poisson equation .
Definition: Tags.hpp:37
Items related to solving a Poisson equation .
Definition: Actions.hpp:6
Tags for the DataBox inherit from this type.
Definition: DataBoxTag.hpp:65
The scalar field to solve for.
Definition: Tags.hpp:27
Defines a list of useful type aliases for tensors.
Stores a collection of function values.
Definition: DataVector.hpp:46
Defines classes SimpleTag, PrefixTag, ComputeTag and several functions for retrieving tag info...
Tensor< T, Symmetry<>, index_list<> > Scalar
Scalar type.
Definition: TypeAliases.hpp:21