Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include "Parallel/ArrayCollection/StartPhaseOnNodegroup.hpp" 7 : #include "Parallel/Phase.hpp" 8 : #include "Parallel/PhaseDependentActionList.hpp" 9 : #include "Utilities/TMPL.hpp" 10 : 11 : namespace Parallel { 12 : namespace detail { 13 : template <typename OnePhaseActions> 14 : struct TransformPdalForNodegroup { 15 : using type = tmpl::conditional_t< 16 : OnePhaseActions::phase == Parallel::Phase::Initialization, tmpl::list<>, 17 : Parallel::PhaseActions<OnePhaseActions::phase, 18 : tmpl::list<Actions::StartPhaseOnNodegroup>>>; 19 : }; 20 : } // namespace detail 21 : 22 : /// \brief Transforms the `PhaseDepActionList` (phase dependent action 23 : /// list/PDAL) from one used for a `evolution::DgElementArray` to that for 24 : /// `Parallel::DgElementCollection` 25 : template <typename PhaseDepActionList> 26 1 : using TransformPhaseDependentActionListForNodegroup = 27 : tmpl::flatten<tmpl::transform<PhaseDepActionList, 28 : detail::TransformPdalForNodegroup<tmpl::_1>>>; 29 : } // namespace Parallel