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 : #include <tuple>
9 : #include <utility>
10 :
11 : #include "DataStructures/DataBox/DataBox.hpp"
12 : #include "DataStructures/TaggedTuple.hpp"
13 : #include "Domain/SizeOfElement.hpp"
14 : #include "Parallel/AlgorithmExecution.hpp"
15 :
16 : /// \cond
17 : namespace Parallel {
18 : template <typename Metavariables>
19 : class GlobalCache;
20 : } // namespace Parallel
21 : /// \endcond
22 :
23 : namespace Initialization {
24 : namespace Actions {
25 : /// \ingroup InitializationGroup
26 : /// \brief Allocate items for minmod limiter
27 : ///
28 : /// DataBox changes:
29 : /// - Adds:
30 : /// * `Tags::SizeOfElement<Dim>`
31 : ///
32 : /// - Removes: nothing
33 : /// - Modifies: nothing
34 : template <size_t Dim>
35 1 : struct Minmod {
36 0 : using simple_tags = db::AddSimpleTags<>;
37 0 : using compute_tags = tmpl::list<domain::Tags::SizeOfElementCompute<Dim>>;
38 :
39 : template <typename DbTagsList, typename... InboxTags, typename Metavariables,
40 : typename ArrayIndex, typename ActionList,
41 : typename ParallelComponent>
42 0 : static Parallel::iterable_action_return_t apply(
43 : db::DataBox<DbTagsList>& /*box*/,
44 : const tuples::TaggedTuple<InboxTags...>& /*inboxes*/,
45 : const Parallel::GlobalCache<Metavariables>& /*cache*/,
46 : const ArrayIndex& /*array_index*/, ActionList /*meta*/,
47 : const ParallelComponent* const /*meta*/) {
48 : return {Parallel::AlgorithmExecution::Continue, std::nullopt};
49 : }
50 : };
51 : } // namespace Actions
52 : } // namespace Initialization
|