SpECTRE Documentation Coverage Report
Current view: top level - Time/Tags - LtsMode.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 22.2 % 9 2
Test Date: 2026-10-22 17:29:42
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 2.0-1