Tags.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <boost/functional/hash.hpp>
7 #include <cstddef>
8 #include <unordered_map>
9 #include <utility>
10 
11 #include "DataStructures/DataBox/Tag.hpp"
14 
15 namespace elliptic::dg::subdomain_operator::Tags {
16 
17 /// The number of points an element-centered subdomain extends into the
18 /// neighbor, i.e. the "extruding" overlap extents. This tag is used in
19 /// conjunction with `LinearSolver::Schwarz::Tags::Overlaps` to describe the
20 /// extruding extent into each neighbor.
22  using type = size_t;
23 };
24 
25 /// Data on the neighbor's side of a mortar. Used to store data for elements
26 /// that do not overlap with the element-centered subdomain, but play a role
27 /// in the DG operator nonetheless.
28 template <typename Tag, size_t VolumeDim>
30  using tag = Tag;
33 };
34 
35 } // namespace elliptic::dg::subdomain_operator::Tags
utility
db::PrefixTag
Mark a struct as a prefix tag by inheriting from this.
Definition: Tag.hpp:103
std::pair
db::SimpleTag
Mark a struct as a simple tag by inheriting from this.
Definition: Tag.hpp:36
elliptic::dg::subdomain_operator::Tags::ExtrudingExtent
The number of points an element-centered subdomain extends into the neighbor, i.e....
Definition: Tags.hpp:21
ElementId
An ElementId uniquely labels an Element.
Definition: ElementId.hpp:51
ElementId.hpp
elliptic::dg::subdomain_operator::Tags::NeighborMortars
Data on the neighbor's side of a mortar. Used to store data for elements that do not overlap with the...
Definition: Tags.hpp:29
cstddef
Direction.hpp
unordered_map