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 : #include "Domain/Structure/DirectionalIdMap.hpp" 10 : 11 0 : namespace elliptic::dg::subdomain_operator::Tags { 12 : 13 : /// The number of points an element-centered subdomain extends into the 14 : /// neighbor, i.e. the "extruding" overlap extents. This tag is used in 15 : /// conjunction with `LinearSolver::Schwarz::Tags::Overlaps` to describe the 16 : /// extruding extent into each neighbor. 17 1 : struct ExtrudingExtent : db::SimpleTag { 18 0 : using type = size_t; 19 : }; 20 : 21 : /// Data on the neighbor's side of a mortar. Used to store data for elements 22 : /// that do not overlap with the element-centered subdomain, but play a role 23 : /// in the DG operator nonetheless. 24 : template <typename Tag, size_t VolumeDim> 25 1 : struct NeighborMortars : db::PrefixTag, db::SimpleTag { 26 0 : using tag = Tag; 27 0 : using type = DirectionalIdMap<VolumeDim, typename Tag::type>; 28 : }; 29 : 30 : } // namespace elliptic::dg::subdomain_operator::Tags