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 "DataStructures/TaggedTuple.hpp"
12 : #include "Parallel/AlgorithmExecution.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
|