SpECTRE Documentation Coverage Report
Current view: top level - Evolution/DgSubcell - DisableLts.hpp Hit Total Coverage
Commit: 1e29a35ad8559408f21493dc5db8a49a237bb2f0 Lines: 1 10 10.0 %
Date: 2026-03-31 22:27:51
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 <optional>
       8             : 
       9             : #include "Evolution/DgSubcell/Tags/SubcellOptions.hpp"
      10             : #include "Time/Tags/FixedLtsRatio.hpp"
      11             : #include "Utilities/TMPL.hpp"
      12             : 
      13             : /// \cond
      14             : template <size_t Dim, typename T>
      15             : class DirectionalIdMap;
      16             : template <size_t VolumeDim>
      17             : class Element;
      18             : namespace domain::Tags {
      19             : template <size_t VolumeDim>
      20             : struct Element;
      21             : }  // namespace domain::Tags
      22             : namespace evolution::dg {
      23             : template <size_t VolumeDim>
      24             : class MortarInfo;
      25             : }  // namespace evolution::dg
      26             : namespace evolution::dg::Tags {
      27             : template <size_t Dim>
      28             : struct MortarInfo;
      29             : }  // namespace evolution::dg::Tags
      30             : namespace evolution::dg::subcell {
      31             : class SubcellOptions;
      32             : }  // namespace evolution::dg::subcell
      33             : namespace gsl {
      34             : template <class T>
      35             : class not_null;
      36             : }  // namespace gsl
      37             : /// \endcond
      38             : 
      39             : namespace evolution::dg::subcell {
      40             : /*!
      41             :  * \brief Initialization mutator that disables local time-stepping in
      42             :  * subcell regions for a mixed subcell-LTS evolution.
      43             :  *
      44             :  * Sets `Tags::FixedLtsRatio` for all elements not specified in
      45             :  * `OnlyDgBlocksAndGroups`, and sets all boundaries between such
      46             :  * elements to `TimeSteppingPolicy::EqualRate`.
      47             :  */
      48             : template <size_t Dim>
      49           1 : struct DisableLts {
      50           0 :   using const_global_cache_tags = tmpl::list<Tags::SubcellOptions<Dim>>;
      51           0 :   using mutable_global_cache_tags = tmpl::list<>;
      52           0 :   using simple_tags_from_options = tmpl::list<>;
      53           0 :   using simple_tags = tmpl::list<::Tags::FixedLtsRatio>;
      54           0 :   using compute_tags = tmpl::list<>;
      55             : 
      56           0 :   using return_tags =
      57             :       tmpl::list<::Tags::FixedLtsRatio, evolution::dg::Tags::MortarInfo<Dim>>;
      58           0 :   using argument_tags =
      59             :       tmpl::list<domain::Tags::Element<Dim>, Tags::SubcellOptions<Dim>>;
      60             : 
      61           0 :   static void apply(
      62             :       gsl::not_null<std::optional<size_t>*> fixed_lts_ratio,
      63             :       gsl::not_null<DirectionalIdMap<Dim, ::evolution::dg::MortarInfo<Dim>>*>
      64             :           mortar_infos,
      65             :       const Element<Dim>& element, const SubcellOptions& subcell_options);
      66             : };
      67             : }  // namespace evolution::dg::subcell

Generated by: LCOV version 1.14