Limiter.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 #include <utility>
8 
11 #include "Domain/SizeOfElement.hpp"
12 
13 namespace Initialization {
14 
15 /// \brief Allocate items for minmod limiter
16 ///
17 /// DataBox changes:
18 /// - Adds:
19 /// * `Tags::SizeOfElement<Dim>`
20 ///
21 /// - Removes: nothing
22 /// - Modifies: nothing
23 template <size_t Dim>
24 struct MinMod {
25  using simple_tags = db::AddSimpleTags<>;
26  using compute_tags = tmpl::list<Tags::SizeOfElement<Dim>>;
27  template <typename TagsList>
28  static auto initialize(db::DataBox<TagsList>&& box) noexcept {
29  return db::create_from<db::RemoveTags<>, simple_tags, compute_tags>(
30  std::move(box));
31  }
32 };
33 
34 } // namespace Initialization
Allocate items for minmod limiter.
Definition: Limiter.hpp:24
Items for initializing the DataBoxes of parallel components.
Definition: ConservativeSystem.hpp:21
Defines classes and functions used for manipulating DataBox&#39;s.
tmpl::flatten< tmpl::list< Tags... > > AddSimpleTags
List of Tags to add to the DataBox.
Definition: DataBox.hpp:1227
Definition: InterpolationTargetWedgeSectionTorus.hpp:24
Defines classes SimpleTag, PrefixTag, ComputeTag and several functions for retrieving tag info...