SpECTRE Documentation Coverage Report
Current view: top level - Time/Tags - LtsMode.hpp Hit Total Coverage
Commit: ecb8a275e1aebab77dcce48a5e098ed4e486ab4b Lines: 2 9 22.2 %
Date: 2026-08-22 01:05:40
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 "DataStructures/DataBox/Tag.hpp"
       7             : #include "Time/LtsMode.hpp"
       8             : #include "Time/OptionTags/LocalTimeStepping.hpp"
       9             : #include "Utilities/ErrorHandling/Error.hpp"
      10             : #include "Utilities/TMPL.hpp"
      11             : 
      12             : namespace Tags {
      13             : /// \ingroup DataBoxTagsGroup
      14             : /// \ingroup TimeGroup
      15             : /// \brief The version of local time-stepping in use
      16           1 : struct LtsMode : db::SimpleTag {
      17           0 :   using type = ::LtsMode;
      18             : 
      19           0 :   static constexpr bool pass_metavariables = false;
      20           0 :   using option_tags = tmpl::list<::OptionTags::LocalTimeStepping>;
      21             : 
      22           0 :   static type create_from_options(const type lts_mode) { return lts_mode; }
      23             : };
      24             : 
      25             : /// \ingroup DataBoxTagsGroup
      26             : /// \ingroup TimeGroup
      27             : /// Version of LtsMode that forces a specific value, primarily for
      28             : /// executables without LTS support.
      29             : template <::LtsMode Mode>
      30           1 : struct LtsModeForced : LtsMode {
      31           0 :   using base = LtsMode;
      32             : 
      33           0 :   static type create_from_options(const type lts_mode) {
      34             :     // Check consistency rather than just returning the forced mode so
      35             :     // that other tag creation functions can rely on the parsed value
      36             :     // being correct.
      37             :     if (lts_mode != Mode) {
      38             :       ERROR_NO_TRACE(
      39             :           "This executable only supports LocalTimeStepping: " << Mode);
      40             :     }
      41             :     return lts_mode;
      42             :   }
      43             : };
      44             : }  // namespace Tags

Generated by: LCOV version 1.14