SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/ScalarAdvection/Subcell - TciOptions.hpp Hit Total Coverage
Commit: 817e13c5144619b701c7cd870655d8dbf94ab8ce Lines: 1 21 4.8 %
Date: 2024-07-19 22:17:05
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 <limits>
       7             : 
       8             : #include "DataStructures/DataBox/Tag.hpp"
       9             : #include "NumericalAlgorithms/DiscontinuousGalerkin/Tags/OptionsGroup.hpp"
      10             : #include "Options/String.hpp"
      11             : #include "Utilities/TMPL.hpp"
      12             : 
      13             : /// \cond
      14             : namespace PUP {
      15             : class er;
      16             : }  // namespace PUP
      17             : /// \endcond
      18             : 
      19             : namespace ScalarAdvection::subcell {
      20           0 : struct TciOptions {
      21             :   /*!
      22             :    * \brief The cutoff of the absolute value of the scalar field \f$U\f$ in an
      23             :    * element to use the Persson TCI. Below this value the Persson TCI is not
      24             :    * applied.
      25             :    */
      26           1 :   struct UCutoff {
      27           0 :     using type = double;
      28           0 :     static type lower_bound() { return 0.0; }
      29           0 :     static constexpr Options::String help = {
      30             :         "The cutoff of the absolute value of the scalar field U in an "
      31             :         "element to use Persson TCI."};
      32             :   };
      33             : 
      34           0 :   using options = tmpl::list<UCutoff>;
      35           0 :   static constexpr Options::String help = {
      36             :       "Options for the troubled-cell indicator"};
      37             : 
      38             :   // NOLINTNEXTLINE(google-runtime-references)
      39           0 :   void pup(PUP::er& /*p*/);
      40             : 
      41           0 :   double u_cutoff{std::numeric_limits<double>::signaling_NaN()};
      42             : };
      43             : 
      44           0 : namespace OptionTags {
      45           0 : struct TciOptions {
      46           0 :   using type = subcell::TciOptions;
      47           0 :   static constexpr Options::String help =
      48             :       "ScalarAdvection-specific options for the TCI";
      49           0 :   using group = ::dg::OptionTags::DiscontinuousGalerkinGroup;
      50             : };
      51             : }  // namespace OptionTags
      52             : 
      53           0 : namespace Tags {
      54           0 : struct TciOptions : db::SimpleTag {
      55           0 :   using type = subcell::TciOptions;
      56           0 :   using option_tags = tmpl::list<typename OptionTags::TciOptions>;
      57             : 
      58           0 :   static constexpr bool pass_metavariables = false;
      59           0 :   static type create_from_options(const type& tci_options) {
      60             :     return tci_options;
      61             :   }
      62             : };
      63             : }  // namespace Tags
      64             : }  // namespace ScalarAdvection::subcell

Generated by: LCOV version 1.14