TerminatePhase.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <tuple>
7 
8 /// \cond
9 namespace tuples {
10 template <typename... InboxTags>
11 struct TaggedTuple;
12 } // namespace tuples
13 namespace Parallel {
14 template <typename Metavariables>
15 class ConstGlobalCache;
16 } // namespace Parallel
17 /// \endcond
18 
19 namespace Parallel {
20 namespace Actions {
21 
22 /*!
23  * \ingroup ActionsGroup
24  * \brief Terminate the algorithm to proceed to the next phase.
25  */
27  template <typename DataBox, typename... InboxTags, typename Metavariables,
28  typename ArrayIndex, typename ActionList,
29  typename ParallelComponent>
31  DataBox& box, const tuples::TaggedTuple<InboxTags...>& /*inboxes*/,
33  const ArrayIndex& /*array_index*/,
34  // NOLINTNEXTLINE(readability-avoid-const-params-in-decls)
35  const ActionList /*meta*/,
36  // NOLINTNEXTLINE(readability-avoid-const-params-in-decls)
37  const ParallelComponent* const /*meta*/) noexcept {
38  return {std::move(box), true};
39  }
40 };
41 
42 } // namespace Actions
43 } // namespace Parallel
Definition: TaggedTuple.hpp:25
Contains functions that forward to Charm++ parallel functions.
Definition: Abort.hpp:13
constexpr auto apply(F &&f, const DataBox< BoxTags > &box, Args &&... args)
Apply the function f with argument Tags TagsList from DataBox box
Definition: DataBox.hpp:1621
An associative container that is indexed by structs.
Definition: TaggedTuple.hpp:272
A Charm++ chare that caches constant data once per Charm++ node.
Definition: ConstGlobalCache.hpp:76
Terminate the algorithm to proceed to the next phase.
Definition: TerminatePhase.hpp:26
Definition: ComputeTimeDerivative.hpp:28
The array index used for indexing Chare Arrays, mostly an implementation detail.
Definition: ArrayIndex.hpp:20