Constraints.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 
9 #include "DataStructures/DataBox/Tag.hpp"
10 #include "DataStructures/DataVector.hpp"
12 #include "Evolution/Systems/GeneralizedHarmonic/ConstraintDamping/Tags.hpp"
14 #include "Evolution/Systems/GeneralizedHarmonic/Tags.hpp"
15 #include "Evolution/Systems/GrMhd/GhValenciaDivClean/Tags.hpp"
17 #include "Utilities/Gsl.hpp"
18 #include "Utilities/TMPL.hpp"
19 
21 /*!
22  * \brief Compute item to get the F-constraint for the generalized harmonic
23  * evolution system with an MHD stress-energy source.
24  *
25  * \details See `GeneralizedHarmonic::f_constraint()`. Can be retrieved using
26  * `GeneralizedHarmonic::Tags::FConstraint`.
27  */
28 template <size_t SpatialDim, typename Frame>
30  : GeneralizedHarmonic::Tags::FConstraint<SpatialDim, Frame>,
32  using argument_tags = tmpl::list<
42  tmpl::size_t<SpatialDim>, Frame>,
44  tmpl::size_t<SpatialDim>, Frame>,
48 
49  using return_type = tnsr::a<DataVector, SpatialDim, Frame>;
50 
51  static constexpr auto function = static_cast<void (*)(
53  const tnsr::a<DataVector, SpatialDim, Frame>&,
54  const tnsr::ab<DataVector, SpatialDim, Frame>&,
55  const tnsr::a<DataVector, SpatialDim, Frame>&,
56  const tnsr::A<DataVector, SpatialDim, Frame>&,
57  const tnsr::II<DataVector, SpatialDim, Frame>&,
58  const tnsr::AA<DataVector, SpatialDim, Frame>&,
59  const tnsr::aa<DataVector, SpatialDim, Frame>&,
60  const tnsr::iaa<DataVector, SpatialDim, Frame>&,
61  const tnsr::iaa<DataVector, SpatialDim, Frame>&,
62  const tnsr::ijaa<DataVector, SpatialDim, Frame>&,
63  const Scalar<DataVector>&,
64  const tnsr::iaa<DataVector, SpatialDim, Frame>&,
65  const tnsr::aa<DataVector, SpatialDim, Frame>&) noexcept>(
66  &GeneralizedHarmonic::f_constraint<SpatialDim, Frame, DataVector>);
67 
69 };
70 } // namespace grmhd::GhValenciaDivClean::Tags
GeneralizedHarmonic::Tags::SpacetimeDerivGaugeH< SpatialDim, Frame >
db::ComputeTag
Mark a struct as a compute tag by inheriting from this.
Definition: Tag.hpp:157
grmhd::GhValenciaDivClean::Tags
Tags for the combined system of the Generalized Harmonic formulation for the Einstein field equations...
Definition: Constraints.hpp:20
gr::Tags::SpacetimeNormalVector
Definition: Tags.hpp:87
grmhd::GhValenciaDivClean::Tags::FConstraintCompute
Compute item to get the F-constraint for the generalized harmonic evolution system with an MHD stress...
Definition: Constraints.hpp:29
cstddef
GeneralizedHarmonic::Tags::Pi< SpatialDim, Frame >
grmhd::GhValenciaDivClean::Tags::TraceReversedStressEnergy
Represents the trace reversed stress-energy tensor of the matter in the MHD sector of the GRMHD syste...
Definition: Tags.hpp:26
gr::Tags::InverseSpacetimeMetric
Definition: Tags.hpp:21
GeneralizedHarmonic::Tags::FConstraint
Tags corresponding to various constraints of the generalized harmonic system, and their diagnosticall...
Definition: Tags.hpp:158
GeneralizedHarmonic::Tags::GaugeH< SpatialDim, Frame >
gr::Tags::SpacetimeNormalOneForm
Definition: Tags.hpp:83
GeneralizedHarmonic::ConstraintDamping::Tags::ConstraintGamma2
Constraint dammping parameter for the generalized harmonic system (cf. ).
Definition: Tags.hpp:70
Constraints.hpp
GeneralizedHarmonic::Tags::Phi< SpatialDim, Frame >
Scalar
Tensor< T, Symmetry<>, index_list<> > Scalar
Definition: TypeAliases.hpp:21
Gsl.hpp
GeneralizedHarmonic::Tags::ThreeIndexConstraint
Tags corresponding to various constraints of the generalized harmonic system, and their diagnosticall...
Definition: Tags.hpp:168
TypeAliases.hpp
Frame
Definition: IndexType.hpp:36
Tags::deriv
Prefix indicating spatial derivatives.
Definition: PartialDerivatives.hpp:52
PartialDerivatives.hpp
Prefixes.hpp
TMPL.hpp
gr::Tags::InverseSpatialMetric
Inverse of the spatial metric.
Definition: Tags.hpp:33
gsl::not_null
Require a pointer to not be a nullptr
Definition: ReadSpecPiecewisePolynomial.hpp:13