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
|