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