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 <unordered_map> 8 : 9 : #include "DataStructures/DataBox/Tag.hpp" 10 : 11 : /// \cond 12 : template <size_t Dim> 13 : class ElementId; 14 : /// \endcond 15 : 16 : namespace Parallel::Tags { 17 : /// \brief The node (location) where different elements are. 18 : /// 19 : /// This should be in the nodegroup's DataBox. 20 : template <size_t Dim> 21 1 : struct ElementLocations : db::SimpleTag { 22 0 : using type = std::unordered_map<ElementId<Dim>, size_t>; 23 : }; 24 : 25 : /// \brief The node (location) where different elements are. 26 : /// 27 : /// This should be in the DgElementArrayMember's DataBox and should point to 28 : /// the one located in the nodegroup's DataBox. 29 : template <size_t Dim> 30 1 : struct ElementLocationsPointer : db::SimpleTag { 31 0 : using type = std::unordered_map<ElementId<Dim>, size_t>*; 32 : }; 33 : } // namespace Parallel::Tags