Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include "Evolution/Systems/GeneralizedHarmonic/ConstraintDamping/Tags.hpp"
7 : #include "Evolution/Systems/GeneralizedHarmonic/TagsDeclarations.hpp"
8 : #include "NumericalAlgorithms/LinearOperators/PartialDerivatives.hpp"
9 : #include "NumericalAlgorithms/SphericalHarmonics/Tags.hpp"
10 : #include "PointwiseFunctions/GeneralRelativity/Surfaces/TagsDeclarations.hpp"
11 : #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
12 : #include "Utilities/TMPL.hpp"
13 :
14 : /// \cond
15 : namespace Frame {
16 : struct Grid;
17 : struct Inertial;
18 : } // namespace Frame
19 : struct DataVector;
20 : /// \endcond
21 :
22 : namespace ah {
23 : template <size_t Dim>
24 0 : using source_vars =
25 : tmpl::list<gr::Tags::SpacetimeMetric<DataVector, Dim>,
26 : gh::Tags::Pi<DataVector, Dim>, gh::Tags::Phi<DataVector, Dim>,
27 : ::Tags::deriv<gh::Tags::Phi<DataVector, Dim>, tmpl::size_t<Dim>,
28 : Frame::Inertial>>;
29 :
30 : template <size_t Dim, typename Frame>
31 0 : using vars_to_interpolate_to_target =
32 : tmpl::list<gr::Tags::SpatialMetric<DataVector, Dim, Frame>,
33 : gr::Tags::InverseSpatialMetric<DataVector, Dim, Frame>,
34 : gr::Tags::ExtrinsicCurvature<DataVector, Dim, Frame>,
35 : gr::Tags::SpatialChristoffelSecondKind<DataVector, Dim, Frame>,
36 : gr::Tags::SpatialRicci<DataVector, Dim, Frame>>;
37 :
38 : template <typename Frame>
39 0 : using tags_for_observing =
40 : tmpl::list<gr::surfaces::Tags::AreaCompute<Frame>,
41 : gr::surfaces::Tags::IrreducibleMassCompute<Frame>,
42 : ylm::Tags::MaxRicciScalarCompute,
43 : ylm::Tags::MinRicciScalarCompute,
44 : gr::surfaces::Tags::ChristodoulouMassCompute<Frame>,
45 : gr::surfaces::Tags::DimensionlessSpinMagnitudeCompute<Frame>>;
46 :
47 0 : using surface_tags_for_observing = tmpl::list<ylm::Tags::RicciScalar>;
48 :
49 : template <size_t Dim, typename Frame>
50 0 : using compute_items_on_target = tmpl::append<
51 : tmpl::list<
52 : ylm::Tags::ThetaPhiCompute<Frame>, ylm::Tags::RadiusCompute<Frame>,
53 : ylm::Tags::RhatCompute<Frame>, ylm::Tags::InvJacobianCompute<Frame>,
54 : ylm::Tags::InvHessianCompute<Frame>, ylm::Tags::JacobianCompute<Frame>,
55 : ylm::Tags::DxRadiusCompute<Frame>, ylm::Tags::D2xRadiusCompute<Frame>,
56 : ylm::Tags::NormalOneFormCompute<Frame>,
57 : ylm::Tags::OneOverOneFormMagnitudeCompute<DataVector, Dim, Frame>,
58 : ylm::Tags::TangentsCompute<Frame>,
59 : ylm::Tags::UnitNormalOneFormCompute<Frame>,
60 : ylm::Tags::UnitNormalVectorCompute<Frame>,
61 : ylm::Tags::GradUnitNormalOneFormCompute<Frame>,
62 : // Note that ylm::Tags::ExtrinsicCurvatureCompute is the
63 : // 2d extrinsic curvature of the strahlkorper embedded in the 3d
64 : // slice, whereas gr::tags::ExtrinsicCurvature is the 3d
65 : // extrinsic curvature of the slice embedded in 4d spacetime.
66 : // Both quantities are in the DataBox.
67 : gr::surfaces::Tags::AreaElementCompute<Frame>,
68 : ylm::Tags::EuclideanAreaElementCompute<Frame>,
69 : ylm::Tags::ExtrinsicCurvatureCompute<Frame>,
70 : ylm::Tags::RicciScalarCompute<Frame>,
71 : gr::surfaces::Tags::SpinFunctionCompute<Frame>,
72 : gr::surfaces::Tags::DimensionfulSpinMagnitudeCompute<Frame>>,
73 : tags_for_observing<Frame>>;
74 : } // namespace ah
|