SpECTRE Documentation Coverage Report
Current view: top level - PointwiseFunctions/ScalarTensor/ScalarGaussBonnet - CouplingParameters.hpp Hit Total Coverage
Commit: 1f2210958b4f38fdc0400907ee7c6d5af5111418 Lines: 1 21 4.8 %
Date: 2025-12-05 05:03:31
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             : #include <limits>
       8             : 
       9             : #include "Options/String.hpp"
      10             : #include "Utilities/TMPL.hpp"
      11             : 
      12             : /// \cond
      13             : namespace PUP {
      14             : class er;
      15             : }  // namespace PUP
      16             : /// \endcond
      17             : 
      18             : namespace ScalarTensor {
      19             : 
      20             : /*!
      21             :  * \brief Linear, quadratic and quartic coupling parameters to curvature.
      22             :  */
      23           1 : struct CouplingParameterOptions {
      24           0 :   static constexpr Options::String help = {
      25             :       "Options for coupling parameters to curvature."};
      26             : 
      27           0 :   struct Linear {
      28           0 :     using type = double;
      29           0 :     static constexpr Options::String help = "Linear coupling parameter.";
      30             :   };
      31             : 
      32           0 :   struct Quadratic {
      33           0 :     using type = double;
      34           0 :     static constexpr Options::String help = "Quadratic coupling parameter.";
      35             :   };
      36             : 
      37           0 :   struct Quartic {
      38           0 :     using type = double;
      39           0 :     static constexpr Options::String help = "Quartic coupling parameter.";
      40             :   };
      41             : 
      42           0 :   using options = tmpl::list<Linear, Quadratic, Quartic>;
      43             : 
      44           0 :   CouplingParameterOptions() = default;
      45           0 :   CouplingParameterOptions(double linear_in, double quadratic_in,
      46             :                            double quartic_in);
      47             : 
      48             :   // NOLINTNEXTLINE(google-runtime-references)
      49           0 :   void pup(PUP::er& p);
      50             : 
      51           0 :   double linear{std::numeric_limits<double>::signaling_NaN()};
      52           0 :   double quadratic{std::numeric_limits<double>::signaling_NaN()};
      53           0 :   double quartic{std::numeric_limits<double>::signaling_NaN()};
      54             : };
      55             : 
      56           0 : bool operator==(const CouplingParameterOptions& lhs,
      57             :                 const CouplingParameterOptions& rhs);
      58           0 : bool operator!=(const CouplingParameterOptions& lhs,
      59             :                 const CouplingParameterOptions& rhs);
      60             : 
      61             : }  // namespace ScalarTensor

Generated by: LCOV version 1.14