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 : 8 : #include "DataStructures/DataBox/Tag.hpp" 9 : 10 : /// \cond 11 : template <size_t Dim, typename T> 12 : class DirectionalIdMap; 13 : template <size_t Dim> 14 : class Mesh; 15 : /// \endcond 16 : 17 : namespace domain::Tags { 18 : /*! 19 : * \brief Holds the mesh of each neighboring element, oriented to the 20 : * host's logical frame. 21 : * 22 : * \warning Does not include the neigbors in Directions in which the element has 23 : * domain::FaceType::MultipleNonconforming. 24 : * 25 : * This knowledge can be used to determine the geometry of mortars between 26 : * elements. It is kept up to date by AMR. 27 : * 28 : * For DG-FD hybrid methods this is necessary to determine what numerical method 29 : * the neighbor is using. This knowledge can be used for optimizing code. 30 : */ 31 : template <size_t Dim> 32 1 : struct NeighborMesh : db::SimpleTag { 33 0 : using type = DirectionalIdMap<Dim, ::Mesh<Dim>>; 34 : }; 35 : } // namespace domain::Tags