SpECTRE Documentation Coverage Report
Current view: top level - PointwiseFunctions/ScalarTensor/ScalarGaussBonnet/CouplingFunctions - Tags.hpp Hit Total Coverage
Commit: e168c1aa7e6b7eeddf3f9be0a985c755ae24c13d Lines: 5 23 21.7 %
Date: 2026-09-15 09:43:04
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 <memory>
       7             : 
       8             : #include "DataStructures/DataBox/Tag.hpp"
       9             : #include "Options/String.hpp"
      10             : #include "PointwiseFunctions/ScalarTensor/ScalarGaussBonnet/CouplingFunctions/CouplingFunction.hpp"
      11             : #include "Utilities/Serialization/Serialize.hpp"
      12             : #include "Utilities/TMPL.hpp"
      13             : 
      14             : /// \cond
      15             : namespace ScalarTensor::sgb::OptionTags {
      16             : struct Group;
      17             : }  // namespace ScalarTensor::sgb::OptionTags
      18             : /// \endcond
      19             : 
      20             : namespace ScalarTensor::sgb {
      21             : 
      22           0 : namespace OptionTags {
      23             : /*!
      24             :  * \brief Group encoding all information about the coupling term in the action
      25             :  * of Einstein-scalar-Gauss-Bonnet gravity.
      26             :  *
      27             :  * \details The coupling term considered here is consistent with the expression
      28             :  * of the action in \cite Nee2024bur , and reads
      29             :  * \f$\ell^2 F[\Psi] \mathcal{G}\f$, where \f$\ell\f$ is a coupling constant
      30             :  * encoding the length below which modifications to General Relativity start
      31             :  * becoming relevant, \f$F[\Psi]\f$ is the coupling function and
      32             :  * \f$\mathcal{G}\f$ is the Gauss-Bonnet invariant.
      33             :  */
      34           1 : struct CouplingTerm {
      35           0 :   static constexpr Options::String help = {
      36             :       "Group containing information about the coupling term in the action"};
      37             : };
      38             : 
      39             : /*!
      40             :  * \brief Coupling constant appearing in the coupling term of
      41             :  * Einstein-scalar-Gauss-Bonnet gravity.
      42             :  *
      43             :  * \details This coupling constant has the dimensions of a length and
      44             :  * encodes the length scale below which modifications to General Relativity
      45             :  * start becoming relevant.
      46             :  */
      47           1 : struct Ell {
      48           0 :   using type = double;
      49           0 :   static constexpr Options::String help = {
      50             :       "Coupling constant setting the length scales where modifications enter"};
      51           0 :   using group = CouplingTerm;
      52             : };
      53             : 
      54             : /*!
      55             :  * \brief Coupling function \f$F[\Psi]\f$.
      56             :  */
      57           1 : struct CouplingFunction {
      58           0 :   using type =
      59             :       std::unique_ptr<ScalarTensor::sgb::CouplingFunctions::CouplingFunction>;
      60           0 :   static constexpr Options::String help = {
      61             :       "The coupling function in the scalar-Gauss-Bonnet term"};
      62           0 :   using group = CouplingTerm;
      63             : };
      64             : 
      65             : }  // namespace OptionTags
      66             : 
      67           0 : namespace Tags {
      68             : /*!
      69             :  * \brief Coupling constant appearing in the coupling term of
      70             :  * Einstein-scalar-Gauss-Bonnet gravity.
      71             :  *
      72             :  * \details This coupling constant has the dimensions of a length and
      73             :  * encodes the length scale below which modifications to General Relativity
      74             :  * start becoming relevant.
      75             :  */
      76           1 : struct Ell : db::SimpleTag {
      77           0 :   using type = double;
      78           0 :   using option_tags = tmpl::list<OptionTags::Ell>;
      79           0 :   static constexpr bool pass_metavariables = false;
      80           0 :   static double create_from_options(const double value) { return value; }
      81             : };
      82             : 
      83             : /*!
      84             :  * \brief Coupling function \f$F[\Psi]\f$.
      85             :  */
      86           1 : struct CouplingFunction : db::SimpleTag {
      87           0 :   using type =
      88             :       std::unique_ptr<ScalarTensor::sgb::CouplingFunctions::CouplingFunction>;
      89           0 :   using option_tags = tmpl::list<OptionTags::CouplingFunction>;
      90           0 :   static constexpr bool pass_metavariables = false;
      91           0 :   static type create_from_options(const type& value) {
      92             :     return serialize_and_deserialize<type>(value);
      93             :   }
      94             : };
      95             : 
      96             : }  // namespace Tags
      97             : 
      98             : }  // namespace ScalarTensor::sgb

Generated by: LCOV version 1.14