SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/Ccz4 - TempTags.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 49.1 % 57 28
Test Date: 2026-10-22 17:29:42
Legend: Lines:     hit not hit

            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              : 
       8              : #include "DataStructures/DataBox/Tag.hpp"
       9              : #include "DataStructures/Tensor/TypeAliases.hpp"
      10              : #include "Evolution/Systems/Ccz4/TagsDeclarations.hpp"
      11              : #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
      12              : 
      13              : namespace Ccz4 {
      14              : namespace Tags {
      15              : /*!
      16              :  * \brief The CCZ4 temporary expression
      17              :  * \f$\hat{\Gamma}^i - \tilde{\Gamma}^i\f$
      18              :  *
      19              :  * \details We define:
      20              :  *
      21              :  * \f{align}
      22              :  *     \hat{\Gamma}^i - \tilde{\Gamma}^i &= 2 \tilde{\gamma}^{ij} Z_j
      23              :  * \f}
      24              :  *
      25              :  * where \f$\hat{\Gamma}^{i}\f$ is the CCZ4 evolved variable defined by
      26              :  * `Ccz4::Tags::GammaHat`, \f$\tilde{\Gamma}^{i}\f$ is the contraction of the
      27              :  * conformal spatial Christoffel symbols of the second kind defined by
      28              :  * `Ccz4::Tags::ContractedConformalChristoffelSecondKind`,
      29              :  * \f$\tilde{\gamma}^{ij}\f$ is the inverse conformal spatial metric defined by
      30              :  * `Ccz4::Tags::InverseConformalMetric`, and \f$Z_i\f$ is the spatial part of
      31              :  * the Z4 constraint defined by `Ccz4::Tags::SpatialZ4Constraint`.
      32              :  */
      33              : template <typename DataType, size_t Dim, typename Frame>
      34            1 : struct GammaHatMinusContractedConformalChristoffel : db::SimpleTag {
      35            0 :   using type = tnsr::I<DataType, Dim, Frame>;
      36              : };
      37              : 
      38              : /*!
      39              :  * \brief The CCZ4 temporary expression \f$K - 2 \Theta c\f$
      40              :  *
      41              :  * \details Here, \f$K\f$ is the trace of the extrinsic curvature defined by
      42              :  * `gr::Tags::TraceExtrinsicCurvature`, \f$\Theta\f$ is the projection of the Z4
      43              :  * four-vector along the normal direction, and \f$c\f$ controls whether to
      44              :  * include algebraic source terms proportional to \f$\Theta\f$.
      45              :  */
      46              : template <typename DataType>
      47            1 : struct KMinus2ThetaC : db::SimpleTag {
      48            0 :   using type = Scalar<DataType>;
      49              : };
      50              : 
      51              : /*!
      52              :  * \brief The CCZ4 temporary expression \f$K - K_0 - 2 \Theta c\f$
      53              :  *
      54              :  * \details Here, \f$K\f$ is the trace of the extrinsic curvature defined by
      55              :  * `gr::Tags::TraceExtrinsicCurvature`, \f$K_0\f$ is the initial time derivative
      56              :  * of the lapse, \f$\Theta\f$ is the projection of the Z4 four-vector along the
      57              :  * normal direction, and \f$c\f$ controls whether to include algebraic source
      58              :  * terms proportional to \f$\Theta\f$.
      59              :  */
      60              : template <typename DataType>
      61            1 : struct KMinusK0Minus2ThetaC : db::SimpleTag {
      62            0 :   using type = Scalar<DataType>;
      63              : };
      64              : 
      65              : /*!
      66              :  * \brief The CCZ4 temporary expression \f$B_k{}^k\f$
      67              :  *
      68              :  * \details Here, \f$B_k{}^k\f$ is the contraction of the CCZ4 auxiliary
      69              :  * variable defined by `Ccz4::Tags::FieldB`.
      70              :  */
      71              : template <typename DataType>
      72            1 : struct ContractedFieldB : db::SimpleTag {
      73            0 :   using type = Scalar<DataType>;
      74              : };
      75              : 
      76              : /*!
      77              :  * \brief The CCZ4 temporary expression \f$\tilde{\gamma}_{ki} B_j{}^k\f$
      78              :  *
      79              :  * \details Here, \f$\tilde{\gamma}_{ij}\f$ is the conformal spatial metric
      80              :  * defined by `Ccz4::Tags::ConformalMetric` and \f$B_i{}^j\f$ is the CCZ4
      81              :  * auxiliary variable defined by `Ccz4::Tags::FieldB`.
      82              :  */
      83              : template <typename DataType, size_t Dim, typename Frame>
      84            1 : struct ConformalMetricTimesFieldB : db::SimpleTag {
      85            0 :   using type = tnsr::ij<DataType, Dim, Frame>;
      86              : };
      87              : 
      88              : /*!
      89              :  * \brief The CCZ4 temporary expression \f$\alpha (R + 2 \nabla_k Z^k)\f$
      90              :  *
      91              :  * \details Here, \f$\alpha\f$ is the lapse defined by `gr::Tags::Lapse` and
      92              :  * \f$(R + 2 \nabla_k Z^k)\f$ is the Ricci scalar plus twice the divergence of
      93              :  * the spatial Z4 constraint defined by
      94              :  * `Ccz4::Tags::RicciScalarPlusDivergenceZ4Constraint`.
      95              :  */
      96              : template <typename DataType>
      97            1 : struct LapseTimesRicciScalarPlus2DivergenceZ4Constraint : db::SimpleTag {
      98            0 :   using type = Scalar<DataType>;
      99              : };
     100              : 
     101              : /*!
     102              :  * \brief The CCZ4 temporary expression \f$\tilde{\gamma}_{ij} tr \tilde{A}\f$
     103              :  *
     104              :  * \details Here, \f$\tilde{\gamma}_{ij}\f$ is the conformal spatial metric
     105              :  * defined by `Ccz4::Tags::ConformalMetric` and \f$tr \tilde{A}\f$ is the trace
     106              :  * of the trace-free part of the extrinsic curvature defined by
     107              :  * `Ccz4::Tags::TraceATilde`.
     108              :  */
     109              : template <typename DataType, size_t Dim, typename Frame>
     110            1 : struct ConformalMetricTimesTraceATilde : db::SimpleTag {
     111            0 :   using type = tnsr::ii<DataType, Dim, Frame>;
     112              : };
     113              : 
     114              : /*!
     115              :  * \brief The CCZ4 temporary expression \f$\alpha \tilde{A}_{ij}\f$
     116              :  *
     117              :  * \details Here, \f$\alpha\f$ is the lapse defined by `gr::Tags::Lapse` and
     118              :  * \f$\tilde{A}_{ij}\f$ is the trace-free part of the extrinsic curvature
     119              :  * defined by `Ccz4::Tags::ATilde`.
     120              :  */
     121              : template <typename DataType, size_t Dim, typename Frame>
     122            1 : struct LapseTimesATilde : db::SimpleTag {
     123            0 :   using type = tnsr::ii<DataType, Dim, Frame>;
     124              : };
     125              : 
     126              : /*!
     127              :  * \brief The CCZ4 temporary expression \f$D_k{}^{nm} \tilde{A}_{nm}\f$
     128              :  *
     129              :  * \details Here, \f$D_k{}^{nm}\f$ is analytically negative one half the spatial
     130              :  * derivative of the inverse conformal spatial metric defined by
     131              :  * `Ccz4::Tags::FieldDUp` and \f$\tilde{A}_{nm}\f$ is the trace-free part of the
     132              :  * extrinsic curvature defined by `Ccz4::Tags::ATilde`.
     133              :  */
     134              : template <typename DataType, size_t Dim, typename Frame>
     135            1 : struct FieldDUpTimesATilde : db::SimpleTag {
     136            0 :   using type = tnsr::i<DataType, Dim, Frame>;
     137              : };
     138              : 
     139              : /*!
     140              :  * \brief The CCZ4 temporary expression \f$\alpha \partial_k \tilde{A}_{ij}\f$
     141              :  *
     142              :  * \details Here, \f$\alpha\f$ is the lapse defined by `gr::Tags::Lapse` and
     143              :  * \f$\tilde{A}_{ij}\f$ is the trace-free part of the extrinsic curvature
     144              :  * defined by `Ccz4::Tags::ATilde`, and \f$\partial_k \tilde{A}_{ij}\f$ is its
     145              :  * spatial derivative.
     146              :  */
     147              : template <typename DataType, size_t Dim, typename Frame>
     148            1 : struct LapseTimesDerivATilde : db::SimpleTag {
     149            0 :   using type = tnsr::ijj<DataType, Dim, Frame>;
     150              : };
     151              : 
     152              : /*!
     153              :  * \brief The CCZ4 temporary expression
     154              :  * \f$\tilde{\gamma}^{nm} \partial_k \tilde{A}_{nm}\f$
     155              :  *
     156              :  * \details Here, \f$\tilde{\gamma}^{nm}\f$ is the inverse conformal spatial
     157              :  * metric defined by `Ccz4::Tags::InverseConformalMetric`, \f$\tilde{A}_{ij}\f$
     158              :  * is the trace-free part of the extrinsic curvature defined by
     159              :  * `Ccz4::Tags::ATilde`, and \f$\partial_k \tilde{A}_{ij}\f$ is its spatial
     160              :  * derivative.
     161              :  */
     162              : template <typename DataType, size_t Dim, typename Frame>
     163            1 : struct InverseConformalMetricTimesDerivATilde : db::SimpleTag {
     164            0 :   using type = tnsr::i<DataType, Dim, Frame>;
     165              : };
     166              : 
     167              : /*!
     168              :  * \brief The CCZ4 temporary expression
     169              :  * \f$\tilde{A}_{ij} - \frac{1}{3} \tilde{\gamma}_{ij} tr \tilde{A}\f$
     170              :  *
     171              :  * \details Here, \f$\tilde{A}_{ij}\f$ is the trace-free part of the extrinsic
     172              :  * curvature defined by `Ccz4::Tags::ATilde`, \f$tr \tilde{A}\f$ is its trace
     173              :  * defined by `Ccz4::Tags::TraceATilde`, and \f$\tilde{\gamma}_{ij}\f$ is the
     174              :  * conformal spatial metric defined by `Ccz4::Tags::ConformalMetric`.
     175              :  */
     176              : template <typename DataType, size_t Dim, typename Frame>
     177            1 : struct ATildeMinusOneThirdConformalMetricTimesTraceATilde : db::SimpleTag {
     178            0 :   using type = tnsr::ii<DataType, Dim, Frame>;
     179              : };
     180              : 
     181              : /*!
     182              :  * \brief The CCZ4 temporary expression \f$\alpha A_k\f$
     183              :  *
     184              :  * \details Here, \f$\alpha\f$ is the lapse defined by `gr::Tags::Lapse` and
     185              :  * \f$A_k\f$ is the CCZ4 auxiliary variable defined by `Ccz4::Tags::FieldA`.
     186              :  */
     187              : template <typename DataType, size_t Dim, typename Frame>
     188            1 : struct LapseTimesFieldA : db::SimpleTag {
     189            0 :   using type = tnsr::i<DataType, Dim, Frame>;
     190              : };
     191              : 
     192              : /*!
     193              :  * \brief The CCZ4 temporary expression \f$\beta^k \partial_k \hat{\Gamma}^i\f$
     194              :  *
     195              :  * \details Here, \f$\beta^k\f$ is the shift defined by `gr::Tags::Shift`,
     196              :  * \f$\hat{\Gamma}^i\f$ is the CCZ4 evolved variable defined by
     197              :  * `Ccz4::Tags::GammaHat`, and \f$\partial_k \hat{\Gamma}^i\f$ is its spatial
     198              :  * derivative.
     199              :  */
     200              : template <typename DataType, size_t Dim, typename Frame>
     201            1 : struct ShiftTimesDerivGammaHat : db::SimpleTag {
     202            0 :   using type = tnsr::I<DataType, Dim, Frame>;
     203              : };
     204              : 
     205              : /*!
     206              :  * \brief The CCZ4 temporary expression \f$\tau^{-1} \tilde{\gamma}_{ij}\f$
     207              :  *
     208              :  * \details Here, \f$\tilde{\gamma}_{ij}\f$ is the conformal spatial metric
     209              :  * defined by `Ccz4::Tags::ConformalMetric` and \f$\tau\f$ is the relaxation
     210              :  * time to enforce the algebraic constraints on the determinant of the conformal
     211              :  * spatial metric and on the trace of the trace-free part of the extrinsic
     212              :  * curvature that is defined by `Ccz4::Tags::ATilde`.
     213              :  */
     214              : template <typename DataType, size_t Dim, typename Frame>
     215            1 : struct InverseTauTimesConformalMetric : db::SimpleTag {
     216            0 :   using type = tnsr::ii<DataType, Dim, Frame>;
     217              : };
     218              : 
     219              : /*!
     220              :  * \brief The CCZ4 temporary expression \f$\alpha g(\alpha)\f$
     221              :  *
     222              :  * \details Here, \f$\alpha\f$ is the lapse defined by `gr::Tags::Lapse` and
     223              :  * \f$g(\alpha)\f$ is a constant that controls the slicing conditions.
     224              :  * \f$g(\alpha) = 1\f$ leads to harmonic slicing and
     225              :  * \f$g(\alpha) = 2 / \alpha\f$ leads to 1 + log slicing.
     226              :  */
     227              : template <typename DataType>
     228            1 : struct LapseTimesSlicingCondition : db::SimpleTag {
     229            0 :   using type = Scalar<DataType>;
     230              : };
     231              : 
     232              : /*!
     233              :  * \brief The CCZ4 temporary expression
     234              :  * (\f$ \mathrm{det}\tilde{\gamma}_{ij} \f$)
     235              :  */
     236              : template <typename DataType>
     237            1 : struct DetConformalSpatialMetric : db::SimpleTag {
     238            0 :   using type = Scalar<DataType>;
     239              : };
     240              : 
     241              : /*!
     242              :  * \brief The CCZ4 temporary expression \f$ \tilde{A}^{ij} \f$
     243              :  */
     244              : template <typename DataType, size_t Dim, typename Frame>
     245            1 : struct InvATilde : db::SimpleTag {
     246            0 :   using type = tnsr::II<DataType, Dim, Frame>;
     247              : };
     248              : 
     249              : /*!
     250              :  * \brief The CCZ4 temporary expression \f$ \tilde{A}_{ki}\partial_j\beta^k \f$
     251              :  */
     252              : template <typename DataType, size_t Dim, typename Frame>
     253            1 : struct ATildeTimesFieldB : db::SimpleTag {
     254            0 :   using type = tnsr::ij<DataType, Dim, Frame>;
     255              : };
     256              : 
     257              : /*!
     258              :  * \brief The CCZ4 temporary expression \f$ \partial_k\partial_l\beta^i \f$
     259              :  */
     260              : template <typename DataType, size_t Dim, typename Frame>
     261            1 : struct SymmetrizedDerivFieldB : db::SimpleTag {
     262            0 :   using type = tnsr::ijK<DataType, Dim, Frame>;
     263              : };
     264              : 
     265              : /*!
     266              :  * \brief The CCZ4 temporary expression \f$ \partial_k\partial_l\beta^l \f$
     267              :  */
     268              : template <typename DataType, size_t Dim, typename Frame>
     269            1 : struct ContractedSymmetrizedDerivFieldB : db::SimpleTag {
     270            0 :   using type = tnsr::i<DataType, Dim, Frame>;
     271              : };
     272              : 
     273              : /*!
     274              :  * \brief The CCZ4 temporary expression
     275              :  * \f$ \tilde{\gamma}^{kn}\tilde{\gamma}^{mj}D_{knm} \f$
     276              :  */
     277              : template <typename DataType, size_t Dim, typename Frame>
     278            1 : struct ContractedFieldDUp : db::SimpleTag {
     279            0 :   using type = tnsr::I<DataType, Dim, Frame>;
     280              : };
     281              : 
     282              : /*!
     283              :  * \brief The CCZ4 temporary expression \f$ (1/2)\phi^2 \f$
     284              :  */
     285              : template <typename DataType>
     286            1 : struct HalfConformalFactorSquared : db::SimpleTag {
     287            0 :   using type = Scalar<DataType>;
     288              : };
     289              : 
     290              : /*!
     291              :  * \brief The CCZ4 temporary expression
     292              :  * \f$ \hat{\Gamma}^l-\tilde{\Gamma}^l \f$ in eq. (26) of \cite Dumbser2017okk
     293              :  */
     294              : template <typename DataType, size_t Dim, typename Frame>
     295            1 : struct DerivGammaHatMinusContractedConformalChristoffel : db::SimpleTag {
     296            0 :   using type = tnsr::iJ<DataType, Dim, Frame>;
     297              : };
     298              : 
     299              : /*!
     300              :  * \brief The CCZ4 temporary expression \f$ \Gamma^k_{ik} \f$
     301              :  */
     302              : template <typename DataType, size_t Dim, typename Frame>
     303            1 : struct ContractedChristoffelSecondKind : db::SimpleTag {
     304            0 :   using type = tnsr::i<DataType, Dim, Frame>;
     305              : };
     306              : 
     307              : /*!
     308              :  * \brief The CCZ4 temporary expression
     309              :  * \f$ \partial_m\tilde{\Gamma}^m_{ij}-\partial_j\tilde{Gamma}^m_{im} \f$
     310              :  */
     311              : template <typename DataType, size_t Dim, typename Frame>
     312            1 : struct ContractedDerivConformalChristoffelDifference : db::SimpleTag {
     313            0 :   using type = tnsr::ij<DataType, Dim, Frame>;
     314              : };
     315              : 
     316              : /*!
     317              :  * \brief The CCZ4 temporary expression \f$ \alpha\tilde{\gamma}_{ij} \f$
     318              :  */
     319              : template <typename DataType, size_t Dim, typename Frame>
     320            1 : struct LapseTimesConformalMetric : db::SimpleTag {
     321            0 :   using type = tnsr::ii<DataType, Dim, Frame>;
     322              : };
     323              : 
     324              : /*!
     325              :  * \brief The CCZ4 temporary expression \f$ R_{ij} \f$
     326              :  */
     327              : template <typename DataType, size_t Dim, typename Frame>
     328            1 : struct SpatialRicciTensor : db::SimpleTag {
     329            0 :   using type = tnsr::ii<DataType, Dim, Frame>;
     330              : };
     331              : 
     332              : }  // namespace Tags
     333              : }  // namespace Ccz4
        

Generated by: LCOV version 2.0-1