SpECTRE Documentation Coverage Report
Current view: top level - Elliptic/Systems/ScalarGaussBonnet - Tags.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 17.3 % 52 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 the ScalarGaussBonnet system.
       6              : 
       7              : #pragma once
       8              : 
       9              : #include <string>
      10              : 
      11              : #include "DataStructures/DataBox/Tag.hpp"
      12              : #include "DataStructures/Tensor/EagerMath/DotProduct.hpp"
      13              : #include "DataStructures/Tensor/TypeAliases.hpp"
      14              : #include "Elliptic/Systems/Xcts/Tags.hpp"
      15              : #include "Evolution/Systems/CurvedScalarWave/Tags.hpp"
      16              : #include "NumericalAlgorithms/LinearOperators/PartialDerivatives.hpp"
      17              : #include "Options/Options.hpp"
      18              : #include "Options/String.hpp"
      19              : #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
      20              : 
      21              : /// \cond
      22              : class DataVector;
      23              : /// \endcond
      24              : 
      25              : namespace sgb {
      26              : /// Tags related to solving the scalar equation in sGB gravity.
      27            1 : namespace OptionTags {
      28              : 
      29            0 : struct OptionGroup {
      30            0 :   static std::string name() { return "ScalarGaussBonnet"; }
      31            0 :   static constexpr Options::String help =
      32              :       "Options for elliptic solve in sGB gravity.";
      33              : };
      34              : 
      35            0 : struct Epsilon2 {
      36            0 :   static std::string name() { return "Epsilon2"; }
      37            0 :   using type = double;
      38            0 :   using group = OptionGroup;
      39            0 :   static constexpr Options::String help{
      40              :       "Epsilon2 (quadratic term) for the coupling function."};
      41              : };
      42              : 
      43            0 : struct Epsilon4 {
      44            0 :   static std::string name() { return "Epsilon4"; }
      45            0 :   using type = double;
      46            0 :   using group = OptionGroup;
      47            0 :   static constexpr Options::String help{
      48              :       "Epsilon4 (quartic term) for the coupling function."};
      49              : };
      50              : 
      51            0 : struct RolloffLocation {
      52            0 :   static std::string name() { return "RolloffLocation"; }
      53            0 :   using type = double;
      54            0 :   using group = OptionGroup;
      55            0 :   static constexpr Options::String help{
      56              :       "Location of center of tanh function for rolling off the shift."};
      57              : };
      58              : 
      59            0 : struct RolloffRate {
      60            0 :   static std::string name() { return "RolloffRate"; }
      61            0 :   using type = double;
      62            0 :   using group = OptionGroup;
      63            0 :   static constexpr Options::String help{
      64              :       "Rate of roll off for rolling off the shift."};
      65              : };
      66              : 
      67              : }  // namespace OptionTags
      68            0 : namespace Tags {
      69              : 
      70              : /*!
      71              :  * \brief Epsilon2 (quadratic term) for the coupling function.
      72              :  */
      73            1 : struct Epsilon2 : db::SimpleTag {
      74            0 :   using type = double;
      75            0 :   using option_tags = tmpl::list<OptionTags::Epsilon2>;
      76            0 :   static constexpr bool pass_metavariables = false;
      77            0 :   static double create_from_options(const double epsilon) { return epsilon; }
      78              : };
      79              : 
      80              : /*!
      81              :  * \brief Epsilon4 (quartic term) for the coupling function.
      82              :  */
      83            1 : struct Epsilon4 : db::SimpleTag {
      84            0 :   using type = double;
      85            0 :   using option_tags = tmpl::list<OptionTags::Epsilon4>;
      86            0 :   static constexpr bool pass_metavariables = false;
      87            0 :   static double create_from_options(const double epsilon) { return epsilon; }
      88              : };
      89              : 
      90              : /*!
      91              :  * \brief Location of center of tanh function for rolling off the shift.
      92              :  */
      93            1 : struct RolloffLocation : db::SimpleTag {
      94            0 :   using type = double;
      95            0 :   using option_tags = tmpl::list<OptionTags::RolloffLocation>;
      96            0 :   static constexpr bool pass_metavariables = false;
      97            0 :   static double create_from_options(const double rolloff_location) {
      98              :     return rolloff_location;
      99              :   }
     100              : };
     101              : 
     102              : /*!
     103              :  * \brief Rate of roll off for rolling off the shift.
     104              :  */
     105            1 : struct RolloffRate : db::SimpleTag {
     106            0 :   using type = double;
     107            0 :   using option_tags = tmpl::list<OptionTags::RolloffRate>;
     108            0 :   static constexpr bool pass_metavariables = false;
     109            0 :   static double create_from_options(const double rolloff_rate) {
     110              :     return rolloff_rate;
     111              :   }
     112              : };
     113              : 
     114              : /*!
     115              :  * \brief The scalar field $\Psi$.
     116              :  */
     117            1 : struct Psi : db::SimpleTag {
     118            0 :   using type = Scalar<DataVector>;
     119              : };
     120              : 
     121              : /*!
     122              :  * \brief Rolled-off shift (i.e. the shift used in computing the fluxes).
     123              :  */
     124            1 : struct RolledOffShift : db::SimpleTag {
     125            0 :   using type = tnsr::I<DataVector, 3, Frame::Inertial>;
     126              : };
     127              : 
     128              : /*!
     129              :  * \brief Pi computed using the rolled-off shift.
     130              :  */
     131            1 : struct PiWithRolledOffShift : db::SimpleTag {
     132            0 :   using type = Scalar<DataVector>;
     133              : };
     134              : }  // namespace Tags
     135              : }  // namespace sgb
        

Generated by: LCOV version 2.0-1