SpECTRE Documentation Coverage Report
Current view: top level - PointwiseFunctions/ScalarTensor/ScalarGaussBonnet - Tags.hpp Hit Total Coverage
Commit: bf57b2bdaf454dfafbc9f096382099a6685858bb Lines: 6 18 33.3 %
Date: 2026-09-11 22:43:53
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 <array>
       7             : 
       8             : #include "DataStructures/DataBox/Tag.hpp"
       9             : #include "DataStructures/DataVector.hpp"
      10             : #include "DataStructures/Tensor/Tensor.hpp"
      11             : #include "Evolution/Systems/ScalarTensor/Tags.hpp"
      12             : #include "Options/String.hpp"
      13             : #include "PointwiseFunctions/ScalarTensor/ScalarGaussBonnet/CouplingParameters.hpp"
      14             : 
      15             : /// \cond
      16             : namespace ScalarTensor::OptionTags {
      17             : struct Group;
      18             : }  // namespace ScalarTensor::OptionTags
      19             : /// \endcond
      20             : 
      21             : namespace ScalarTensor {
      22             : namespace OptionTags {
      23             : /*!
      24             :  * \brief Linear coupling parameters to curvature.
      25             :  */
      26           1 : struct CouplingParameters {
      27           0 :   static constexpr Options::String help = {"Coupling parameters to curvature."};
      28           0 :   using type = ScalarTensor::CouplingParameterOptions;
      29           0 :   using group = ScalarTensor::OptionTags::Group;
      30             : };
      31             : 
      32             : }  // namespace OptionTags
      33             : 
      34             : namespace Tags {
      35             : /*!
      36             :  * \brief Linear, quadratic and quartic coupling parameters to curvature.
      37             :  */
      38           1 : struct CouplingParameters : db::SimpleTag {
      39           0 :   using type = ScalarTensor::CouplingParameterOptions;
      40           0 :   using option_tags = tmpl::list<OptionTags::CouplingParameters>;
      41           0 :   static constexpr bool pass_metavariables = false;
      42           0 :   static ScalarTensor::CouplingParameterOptions create_from_options(
      43             :       const ScalarTensor::CouplingParameterOptions& coupling_parameters) {
      44             :     return coupling_parameters;
      45             :   }
      46             : };
      47             : }  // namespace Tags
      48             : 
      49             : namespace sgb::Tags {
      50             : /*!
      51             :  * \brief Double normal projection of the second covariant derivative of the
      52             :  * coupling function.
      53             :  *
      54             :  * \details Tag for the term $n^a n^b \nabla_a\nabla_b F[\Psi]$, where $F[\Psi]$
      55             :  * is the coupling function, and $n^a$ is the unit vector normal to the spatial
      56             :  * hypersurfaces.
      57             :  */
      58           1 : struct nnDDCoupling : db::SimpleTag {
      59           0 :   using type = Scalar<DataVector>;
      60             : };
      61             : 
      62             : /*!
      63             :  * \brief Mixed projection of the second covariant derivative of the coupling
      64             :  * function.
      65             :  *
      66             :  * \details Tag for the term $\gamma^a_i n^b \nabla_a \nabla_b F[\Psi]$, where
      67             :  * $F[\Psi]$ is the coupling function, $n^a$ is the unit vector normal to the
      68             :  * spatial hypersurfaces, and $\gamma^a_b = \delta^a_b + n^a n_b$ is the
      69             :  * projection operator onto them.
      70             :  */
      71           1 : struct nsDDCoupling : db::SimpleTag {
      72           0 :   using type = tnsr::i<DataVector, 3>;
      73             : };
      74             : 
      75             : /*!
      76             :  * \brief Spatial projection of the second covariant derivative of the coupling
      77             :  * function.
      78             :  *
      79             :  * \details Tag for the term $\gamma^a_i \gamma^b_j \nabla_a \nabla_b F[\Psi]$,
      80             :  * where $F[\Psi]$ is the coupling function, $\gamma^a_b = \delta^a_b + n^a n_b$
      81             :  * is the projection operator onto the spatial hypersurfaces, and $n^a$ is the
      82             :  * unit vector normal to them.
      83             :  */
      84           1 : struct ssDDCoupling : db::SimpleTag {
      85           0 :   using type = tnsr::ii<DataVector, 3>;
      86             : };
      87             : 
      88             : /*!
      89             :  * \brief Spatial trace of the second covariant derivative of the coupling
      90             :  * function.
      91             :  *
      92             :  * \details Tag for the term $\gamma^{ab} \nabla_a \nabla_b F[\Psi]$, where
      93             :  * $F[\Psi]$ is the coupling function and $\gamma^{ab}$ is the inverse spatial
      94             :  * metric.
      95             :  */
      96           1 : struct SpatialTraceDDCoupling : db::SimpleTag {
      97           0 :   using type = Scalar<DataVector>;
      98             : };
      99             : }  // namespace sgb::Tags
     100             : }  // namespace ScalarTensor

Generated by: LCOV version 1.14