Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <optional> 7 : #include <tuple> 8 : #include <utility> 9 : 10 : #include "DataStructures/DataBox/DataBox.hpp" 11 : #include "Parallel/AlgorithmExecution.hpp" 12 : #include "Utilities/TaggedTuple.hpp" 13 : 14 : /// \cond 15 : namespace Parallel { 16 : template <typename Metavariables> 17 : class GlobalCache; 18 : } // namespace Parallel 19 : /// \endcond 20 : 21 : namespace Initialization { 22 : namespace Actions { 23 : /*! 24 : * \ingroup ActionsGroup 25 : * 26 : * \brief Initialize the list of compute tags in `ComputeTagsList` 27 : * 28 : * Uses: nothing 29 : * 30 : * DataBox changes: 31 : * - Adds: 32 : * - Each compute tag in the list `ComputeTagsList` 33 : * - Removes: 34 : * - nothing 35 : * - Modifies: 36 : * - nothing 37 : */ 38 : template <typename ComputeTagsList> 39 1 : struct AddComputeTags { 40 0 : using compute_tags = ComputeTagsList; 41 : 42 : template <typename DbTagsList, typename... InboxTags, typename Metavariables, 43 : typename ArrayIndex, typename ActionList, 44 : typename ParallelComponent> 45 0 : static Parallel::iterable_action_return_t apply( 46 : db::DataBox<DbTagsList>& /*box*/, 47 : const tuples::TaggedTuple<InboxTags...>& /*inboxes*/, 48 : const Parallel::GlobalCache<Metavariables>& /*cache*/, 49 : const ArrayIndex& /*array_index*/, ActionList /*meta*/, 50 : const ParallelComponent* const /*meta*/) { 51 : return {Parallel::AlgorithmExecution::Continue, std::nullopt}; 52 : } 53 : }; 54 : } // namespace Actions 55 : } // namespace Initialization