SpECTRE Documentation Coverage Report
Current view: top level - PointwiseFunctions/ScalarTensor - ConstraintGammas.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 18.2 % 11 2
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/Prefixes.hpp"
       9              : #include "DataStructures/DataBox/Tag.hpp"
      10              : #include "DataStructures/DataVector.hpp"
      11              : #include "DataStructures/Tensor/EagerMath/DotProduct.hpp"
      12              : #include "DataStructures/Tensor/Tensor.hpp"
      13              : #include "Domain/FunctionsOfTime/Tags.hpp"
      14              : #include "Evolution/Systems/ScalarTensor/Tags.hpp"
      15              : #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
      16              : #include "PointwiseFunctions/ScalarTensor/ConstraintDampingTags.hpp"
      17              : #include "Utilities/ContainerHelpers.hpp"
      18              : #include "Utilities/Gsl.hpp"
      19              : #include "Utilities/TMPL.hpp"
      20              : 
      21              : /// \cond
      22              : namespace Tags {
      23              : struct Time;
      24              : }  // namespace Tags
      25              : namespace domain::Tags {
      26              : template <size_t Dim, typename Frame>
      27              : struct Coordinates;
      28              : }  // namespace domain::Tags
      29              : class DataVector;
      30              : template <typename X, typename Symm, typename IndexList>
      31              : class Tensor;
      32              : /// \endcond
      33              : 
      34              : namespace ScalarTensor::Tags {
      35              : /*!
      36              :  * \brief Computes the constraint damping parameter \f$\gamma_1\f$ from the
      37              :  * coordinates and a DampingFunction.
      38              :  *
      39              :  * \details Can be retrieved using
      40              :  * `CurvedScalarWave::Tags::ConstraintGamma1`.
      41              :  */
      42              : template <size_t SpatialDim, typename Frame>
      43            1 : struct ConstraintGamma1Compute : ::CurvedScalarWave::Tags::ConstraintGamma1,
      44              :                                  db::ComputeTag {
      45            0 :   using argument_tags =
      46              :       tmpl::list<DampingFunctionGamma1<SpatialDim, Frame>,
      47              :                  domain::Tags::Coordinates<SpatialDim, Frame>, ::Tags::Time,
      48              :                  ::domain::Tags::FunctionsOfTime>;
      49            0 :   using return_type = Scalar<DataVector>;
      50              : 
      51            0 :   static constexpr void function(
      52              :       const gsl::not_null<Scalar<DataVector>*> gamma,
      53              :       const ::ConstraintDamping::DampingFunction<SpatialDim, Frame>&
      54              :           damping_function,
      55              :       const tnsr::I<DataVector, SpatialDim, Frame>& coords, const double time,
      56              :       const std::unordered_map<
      57              :           std::string,
      58              :           std::unique_ptr<domain::FunctionsOfTime::FunctionOfTime>>&
      59              :           functions_of_time) {
      60              :     damping_function(gamma, coords, time, functions_of_time);
      61              :   }
      62              : 
      63            0 :   using base = ::CurvedScalarWave::Tags::ConstraintGamma1;
      64              : };
      65              : 
      66              : /*!
      67              :  * \brief Computes the constraint damping parameter \f$\gamma_2\f$ from the
      68              :  * coordinates and a DampingFunction.
      69              :  *
      70              :  * \details Can be retrieved using
      71              :  * `CurvedScalarWave::::Tags::ConstraintGamma2`.
      72              :  */
      73              : template <size_t SpatialDim, typename Frame>
      74            1 : struct ConstraintGamma2Compute : ::CurvedScalarWave::Tags::ConstraintGamma2,
      75              :                                  db::ComputeTag {
      76            0 :   using argument_tags =
      77              :       tmpl::list<DampingFunctionGamma2<SpatialDim, Frame>,
      78              :                  domain::Tags::Coordinates<SpatialDim, Frame>, ::Tags::Time,
      79              :                  ::domain::Tags::FunctionsOfTime>;
      80            0 :   using return_type = Scalar<DataVector>;
      81              : 
      82            0 :   static constexpr void function(
      83              :       const gsl::not_null<Scalar<DataVector>*> gamma,
      84              :       const ::ConstraintDamping::DampingFunction<SpatialDim, Frame>&
      85              :           damping_function,
      86              :       const tnsr::I<DataVector, SpatialDim, Frame>& coords, const double time,
      87              :       const std::unordered_map<
      88              :           std::string,
      89              :           std::unique_ptr<domain::FunctionsOfTime::FunctionOfTime>>&
      90              :           functions_of_time) {
      91              :     damping_function(gamma, coords, time, functions_of_time);
      92              :   }
      93              : 
      94            0 :   using base = ::CurvedScalarWave::Tags::ConstraintGamma2;
      95              : };
      96              : }  // namespace ScalarTensor::Tags
        

Generated by: LCOV version 2.0-1