Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <cstddef> 7 : #include <optional> 8 : 9 : #include "DataStructures/Tensor/Tensor.hpp" 10 : #include "Evolution/Systems/GeneralizedHarmonic/ConstraintDamping/Tags.hpp" 11 : #include "Evolution/Systems/GeneralizedHarmonic/Constraints.hpp" 12 : #include "Evolution/Systems/GeneralizedHarmonic/System.hpp" 13 : #include "Evolution/Systems/GeneralizedHarmonic/Tags.hpp" 14 : #include "Evolution/Systems/ScalarTensor/Sources/ScalarSource.hpp" 15 : #include "Evolution/Systems/ScalarTensor/Tags.hpp" 16 : #include "PointwiseFunctions/GeneralRelativity/Christoffel.hpp" 17 : #include "PointwiseFunctions/GeneralRelativity/DerivativesOfSpacetimeMetric.hpp" 18 : #include "PointwiseFunctions/GeneralRelativity/DetAndInverseSpatialMetric.hpp" 19 : #include "PointwiseFunctions/GeneralRelativity/GeneralizedHarmonic/ConstraintGammas.hpp" 20 : #include "PointwiseFunctions/GeneralRelativity/GeneralizedHarmonic/DerivSpatialMetric.hpp" 21 : #include "PointwiseFunctions/GeneralRelativity/GeneralizedHarmonic/ExtrinsicCurvature.hpp" 22 : #include "PointwiseFunctions/GeneralRelativity/GeneralizedHarmonic/SpatialDerivOfLapse.hpp" 23 : #include "PointwiseFunctions/GeneralRelativity/GeneralizedHarmonic/SpatialDerivOfShift.hpp" 24 : #include "PointwiseFunctions/GeneralRelativity/InverseSpacetimeMetric.hpp" 25 : #include "PointwiseFunctions/GeneralRelativity/Lapse.hpp" 26 : #include "PointwiseFunctions/GeneralRelativity/Shift.hpp" 27 : #include "PointwiseFunctions/GeneralRelativity/SpacetimeMetric.hpp" 28 : #include "PointwiseFunctions/GeneralRelativity/SpacetimeNormalOneForm.hpp" 29 : #include "PointwiseFunctions/GeneralRelativity/SpacetimeNormalVector.hpp" 30 : #include "PointwiseFunctions/GeneralRelativity/SpatialMetric.hpp" 31 : #include "PointwiseFunctions/GeneralRelativity/Tags.hpp" 32 : #include "Utilities/TMPL.hpp" 33 : 34 0 : namespace ScalarTensor::Initialization { 35 : 36 : /// \brief List of compute tags to be initialized in the ScalarTensor system 37 : /// 38 : /// \details The compute tags required include those specified in 39 : /// ::gh::Actions::InitializeGhAnd3Plus1Variables as well as the tags required 40 : /// to compute spacetime quantities appearing in the scalar evolution equations. 41 : /// Namely, we include the compute tags associated to the trace of the extrinsic 42 : /// curvature and the trace of the spatial Christoffel symbol, as well as the 43 : /// compute tag required to calculate the source term of the scalar equation. 44 : template <size_t Dim, typename Fr = Frame::Inertial> 45 1 : using scalar_tensor_3plus1_compute_tags = tmpl::list< 46 : // Needed to compute the characteristic speeds for the AH finder 47 : gr::Tags::SpatialMetricCompute<DataVector, Dim, Fr>, 48 : gr::Tags::DetAndInverseSpatialMetricCompute<DataVector, Dim, Fr>, 49 : gr::Tags::ShiftCompute<DataVector, Dim, Fr>, 50 : gr::Tags::LapseCompute<DataVector, Dim, Fr>, 51 : 52 : gr::Tags::SpacetimeNormalVectorCompute<DataVector, Dim, Fr>, 53 : gh::Tags::DerivLapseCompute<Dim, Fr>, 54 : 55 : gr::Tags::InverseSpacetimeMetricCompute<DataVector, Dim, Fr>, 56 : gh::Tags::DerivShiftCompute<Dim, Fr>, 57 : 58 : gh::Tags::DerivSpatialMetricCompute<Dim, Fr>, 59 : 60 : // Compute tags for Trace of Christoffel and Extrinsic curvature 61 : gr::Tags::SpatialChristoffelFirstKindCompute<DataVector, Dim, Fr>, 62 : gr::Tags::SpatialChristoffelSecondKindCompute<DataVector, Dim, Fr>, 63 : gr::Tags::TraceSpatialChristoffelSecondKindCompute<DataVector, Dim, Fr>, 64 : gh::Tags::ExtrinsicCurvatureCompute<Dim, Fr>, 65 : gh::Tags::TraceExtrinsicCurvatureCompute<Dim, Fr>, 66 : 67 : // Compute constraint damping parameters. 68 : gh::ConstraintDamping::Tags::ConstraintGamma0Compute<Dim, Frame::Grid>, 69 : gh::ConstraintDamping::Tags::ConstraintGamma1Compute<Dim, Frame::Grid>, 70 : gh::ConstraintDamping::Tags::ConstraintGamma2Compute<Dim, Frame::Grid>, 71 : 72 : ScalarTensor::Tags::ScalarSourceCompute>; 73 : 74 : } // namespace ScalarTensor::Initialization