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 = tmpl::list<
40 : gr::surfaces::Tags::AreaCompute<Frame>,
41 : gr::surfaces::Tags::IrreducibleMassCompute<Frame>,
42 : ylm::Tags::MaxRicciScalarCompute, ylm::Tags::MinRicciScalarCompute,
43 : gr::surfaces::Tags::ChristodoulouMassCompute<Frame>,
44 : gr::surfaces::Tags::DimensionlessSpinMagnitudeCompute<Frame>,
45 : gr::surfaces::Tags::DimensionfulSpinVectorCompute<Frame, Frame>
46 : >;
47 :
48 0 : using surface_tags_for_observing = tmpl::list<ylm::Tags::RicciScalar>;
49 :
50 : template <size_t Dim, typename Frame>
51 0 : using compute_items_on_target = tmpl::append<
52 : tmpl::list<
53 : ylm::Tags::ThetaPhiCompute<Frame>, ylm::Tags::RadiusCompute<Frame>,
54 : ylm::Tags::RhatCompute<Frame>, ylm::Tags::CartesianCoordsCompute<Frame>,
55 : ylm::Tags::InvJacobianCompute<Frame>,
56 : ylm::Tags::InvHessianCompute<Frame>, ylm::Tags::JacobianCompute<Frame>,
57 : ylm::Tags::DxRadiusCompute<Frame>, ylm::Tags::D2xRadiusCompute<Frame>,
58 : ylm::Tags::NormalOneFormCompute<Frame>,
59 : ylm::Tags::OneOverOneFormMagnitudeCompute<DataVector, Dim, Frame>,
60 : ylm::Tags::TangentsCompute<Frame>,
61 : ylm::Tags::UnitNormalOneFormCompute<Frame>,
62 : ylm::Tags::UnitNormalVectorCompute<Frame>,
63 : ylm::Tags::GradUnitNormalOneFormCompute<Frame>,
64 : // Note that ylm::Tags::ExtrinsicCurvatureCompute is the
65 : // 2d extrinsic curvature of the strahlkorper embedded in the 3d
66 : // slice, whereas gr::tags::ExtrinsicCurvature is the 3d
67 : // extrinsic curvature of the slice embedded in 4d spacetime.
68 : // Both quantities are in the DataBox.
69 : gr::surfaces::Tags::AreaElementCompute<Frame>,
70 : ylm::Tags::EuclideanAreaElementCompute<Frame>,
71 : ylm::Tags::ExtrinsicCurvatureCompute<Frame>,
72 : ylm::Tags::RicciScalarCompute<Frame>,
73 : gr::surfaces::Tags::SpinFunctionCompute<Frame>,
74 : gr::surfaces::Tags::DimensionfulSpinMagnitudeCompute<Frame>>,
75 : tags_for_observing<Frame>>;
76 : } // namespace ah
|