SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/ScalarWave - Tags.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 29.0 % 31 9
Test Date: 2026-10-22 17:29:42
Legend: Lines:     hit not hit

            Line data    Source code
       1            1 : // Distributed under the MIT License.
       2              : // See LICENSE.txt for details.
       3              : 
       4              : /// \file
       5              : /// Defines DataBox tags for scalar wave system
       6              : 
       7              : #pragma once
       8              : 
       9              : #include <cstddef>
      10              : #include <string>
      11              : 
      12              : #include "DataStructures/DataBox/Prefixes.hpp"
      13              : #include "DataStructures/DataBox/Tag.hpp"
      14              : #include "DataStructures/Tensor/TypeAliases.hpp"
      15              : #include "Evolution/Systems/ScalarWave/TagsDeclarations.hpp"
      16              : 
      17              : class DataVector;
      18              : 
      19              : namespace ScalarWave::Tags {
      20              : /*!
      21              :  * \brief The scalar field.
      22              :  */
      23            1 : struct Psi : db::SimpleTag {
      24            0 :   using type = Scalar<DataVector>;
      25              : };
      26              : 
      27              : /*!
      28              :  * \brief Auxiliary variable which is analytically the negative time derivative
      29              :  * of the scalar field.
      30              :  * \details If \f$\Psi\f$ is the scalar field then we define
      31              :  * \f$\Pi = -\partial_t \Psi\f$
      32              :  */
      33            1 : struct Pi : db::SimpleTag {
      34            0 :   using type = Scalar<DataVector>;
      35              : };
      36              : 
      37              : /*!
      38              :  * \brief Auxiliary variable which is analytically the spatial derivative of the
      39              :  * scalar field.
      40              :  * \details If \f$\Psi\f$ is the scalar field then we define
      41              :  * \f$\Phi_{i} = \partial_i \Psi\f$
      42              :  */
      43              : template <size_t Dim, typename Frame>
      44            1 : struct Phi : db::SimpleTag {
      45            0 :   using type = tnsr::i<DataVector, Dim, Frame>;
      46              : };
      47              : 
      48            0 : struct ConstraintGamma2 : db::SimpleTag {
      49            0 :   using type = Scalar<DataVector>;
      50              : };
      51              : 
      52              : /*!
      53              :  * \brief Tag for the one-index constraint of the ScalarWave system
      54              :  *
      55              :  * For details on how this is defined and computed, see
      56              :  * `OneIndexConstraintCompute`.
      57              :  */
      58              : template <size_t Dim>
      59            1 : struct OneIndexConstraint : db::SimpleTag {
      60            0 :   using type = tnsr::i<DataVector, Dim, Frame::Inertial>;
      61              : };
      62              : /*!
      63              :  * \brief Tag for the two-index constraint of the ScalarWave system
      64              :  *
      65              :  * For details on how this is defined and computed, see
      66              :  * `TwoIndexConstraintCompute`.
      67              :  */
      68              : template <size_t Dim>
      69            1 : struct TwoIndexConstraint : db::SimpleTag {
      70            0 :   using type = tnsr::ij<DataVector, Dim, Frame::Inertial>;
      71              : };
      72              : 
      73              : /// @{
      74              : /// \brief Tags corresponding to the characteristic fields of the flat-spacetime
      75              : /// scalar-wave system.
      76              : ///
      77              : /// \details For details on how these are defined and computed, \see
      78              : /// CharacteristicSpeedsCompute
      79            1 : struct VPsi : db::SimpleTag {
      80            0 :   using type = Scalar<DataVector>;
      81              : };
      82              : template <size_t Dim>
      83            0 : struct VZero : db::SimpleTag {
      84            0 :   using type = tnsr::i<DataVector, Dim, Frame::Inertial>;
      85              : };
      86            0 : struct VPlus : db::SimpleTag {
      87            0 :   using type = Scalar<DataVector>;
      88              : };
      89            0 : struct VMinus : db::SimpleTag {
      90            0 :   using type = Scalar<DataVector>;
      91              : };
      92              : /// @}
      93              : 
      94              : template <size_t Dim>
      95            0 : struct CharacteristicSpeeds : db::SimpleTag {
      96            0 :   using type = std::array<DataVector, 4>;
      97              : };
      98              : 
      99              : template <size_t Dim>
     100            0 : struct CharacteristicFields : db::SimpleTag {
     101            0 :   using type = Variables<tmpl::list<VPsi, VZero<Dim>, VPlus, VMinus>>;
     102              : };
     103              : 
     104              : template <size_t Dim>
     105            0 : struct EvolvedFieldsFromCharacteristicFields : db::SimpleTag {
     106            0 :   using type = Variables<tmpl::list<Psi, Pi, Phi<Dim>>>;
     107              : };
     108              : 
     109              : /// The energy density of the scalar wave
     110              : template <size_t Dim>
     111            1 : struct EnergyDensity : db::SimpleTag {
     112            0 :   using type = Scalar<DataVector>;
     113              : };
     114              : 
     115              : /// The momentum density of the scalar wave
     116              : template <size_t Dim>
     117            1 : struct MomentumDensity : db::SimpleTag {
     118            0 :   using type = tnsr::i<DataVector, Dim, Frame::Inertial>;
     119              : };
     120              : 
     121              : }  // namespace ScalarWave::Tags
        

Generated by: LCOV version 2.0-1