MortarTags.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <array>
7 #include <boost/functional/hash.hpp>
8 #include <cstddef>
9 #include <unordered_map>
10 #include <utility>
11 
12 #include "DataStructures/DataBox/Tag.hpp"
15 #include "Evolution/DiscontinuousGalerkin/MortarData.hpp"
17 #include "NumericalAlgorithms/Spectral/Projection.hpp" // for MortarSize
18 #include "Time/TimeStepId.hpp"
19 
20 namespace evolution::dg::Tags {
21 /// Data on mortars, indexed by (Direction, ElementId) pairs
22 ///
23 /// The `Dim` is the volume dimension, not the face dimension.
24 template <size_t Dim>
27  using type =
29 };
30 
31 /// Mesh on the mortars, indexed by (Direction, ElementId) pairs
32 ///
33 /// The `Dim` is the volume dimension, not the face dimension.
34 template <size_t Dim>
37  using type = std::unordered_map<Key, Mesh<Dim - 1>, boost::hash<Key>>;
38 };
39 
40 /// Size of a mortar, relative to the element face. That is, the part
41 /// of the face that it covers.
42 ///
43 /// The `Dim` is the volume dimension, not the face dimension.
44 template <size_t Dim>
47  using type =
49  boost::hash<Key>>;
50 };
51 
52 /// The next temporal id at which to receive data on the specified mortar.
53 ///
54 /// The `Dim` is the volume dimension, not the face dimension.
55 template <size_t Dim>
59 };
60 } // namespace evolution::dg::Tags
utility
std::pair
db::SimpleTag
Mark a struct as a simple tag by inheriting from this.
Definition: Tag.hpp:36
Spectral::MortarSize
MortarSize
The portion of an element covered by a mortar.
Definition: Projection.hpp:18
ElementId< Dim >
ElementId.hpp
cstddef
array
evolution::dg::Tags::MortarMesh
Mesh on the mortars, indexed by (Direction, ElementId) pairs.
Definition: MortarTags.hpp:35
Mesh
Holds the number of grid points, basis, and quadrature in each direction of the computational grid.
Definition: Mesh.hpp:47
TimeStepId.hpp
evolution::dg::Tags::MortarData
Data on mortars, indexed by (Direction, ElementId) pairs.
Definition: MortarTags.hpp:25
Direction.hpp
Mesh.hpp
evolution::dg::Tags::MortarNextTemporalId
The next temporal id at which to receive data on the specified mortar.
Definition: MortarTags.hpp:56
unordered_map
evolution::dg::Tags::MortarSize
Size of a mortar, relative to the element face. That is, the part of the face that it covers.
Definition: MortarTags.hpp:45