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 <deque> 8 : #include <vector> 9 : 10 : #include "Parallel/Callback.hpp" 11 : #include "ParallelAlgorithms/Amr/Actions/CollectDataFromChildren.hpp" 12 : #include "ParallelAlgorithms/Amr/Actions/Component.hpp" 13 : #include "ParallelAlgorithms/Amr/Actions/CreateChild.hpp" 14 : #include "ParallelAlgorithms/Amr/Actions/SendDataToChildren.hpp" 15 : #include "Utilities/Serialization/RegisterDerivedClassesWithCharm.hpp" 16 : #include "Utilities/TMPL.hpp" 17 : 18 : namespace amr { 19 : template <typename Metavariables, typename Component> 20 0 : void register_callbacks() { 21 : using ArrayIndex = typename Component::array_index; 22 : register_classes_with_charm( 23 : tmpl::list< 24 : Parallel::SimpleActionCallback< 25 : amr::Actions::CreateChild, 26 : CProxy_AlgorithmSingleton<amr::Component<Metavariables>, int>, 27 : CProxy_AlgorithmArray<Component, ArrayIndex>, ArrayIndex, 28 : std::vector<ArrayIndex>, size_t, 29 : std::unordered_map<Parallel::Phase, size_t>>, 30 : Parallel::SimpleActionCallback< 31 : amr::Actions::SendDataToChildren, 32 : CProxyElement_AlgorithmArray<Component, ArrayIndex>, 33 : std::vector<ArrayIndex>>, 34 : Parallel::SimpleActionCallback< 35 : amr::Actions::CollectDataFromChildren, 36 : CProxyElement_AlgorithmArray<Component, ArrayIndex>, ArrayIndex, 37 : std::deque<ArrayIndex>>>{}); 38 : } 39 : } // namespace amr