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 "Domain/SizeOfElement.hpp" 13 : #include "Parallel/AlgorithmExecution.hpp" 14 : #include "Utilities/TaggedTuple.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