SpECTRE Documentation Coverage Report
Current view: top level - Evolution/DiscontinuousGalerkin - MortarTags.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 46.2 % 13 6
Test Date: 2026-10-22 17:29:42
Legend: Lines:     hit not hit

            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              : #include <memory>
       8              : 
       9              : #include "DataStructures/DataBox/Tag.hpp"
      10              : 
      11              : /// \cond
      12              : class DataVector;
      13              : template <size_t Dim, typename T>
      14              : class DirectionalIdMap;
      15              : template <size_t Dim>
      16              : class Mesh;
      17              : namespace evolution::dg {
      18              : template <size_t Dim>
      19              : class BoundaryMessage;
      20              : template <size_t Dim>
      21              : class MortarData;
      22              : template <size_t Dim>
      23              : class MortarDataHolder;
      24              : template <size_t Dim>
      25              : class MortarInfo;
      26              : }  // namespace evolution::dg
      27              : class TimeStepId;
      28              : namespace TimeSteppers {
      29              : template <typename LocalData, typename RemoteData,
      30              :           typename UntypedCouplingResult>
      31              : class BoundaryHistory;
      32              : }  // namespace TimeSteppers
      33              : /// \endcond
      34              : 
      35              : /// %Tags used for DG evolution scheme.
      36              : namespace evolution::dg::Tags {
      37              : /// Data on mortars, indexed by (Direction, ElementId) pairs
      38              : ///
      39              : /// The `Dim` is the volume dimension, not the face dimension.
      40              : template <size_t Dim>
      41            1 : struct MortarData : db::SimpleTag {
      42            0 :   using type = DirectionalIdMap<Dim, evolution::dg::MortarDataHolder<Dim>>;
      43              : };
      44              : 
      45              : /// History of the data on mortars, indexed by (Direction, ElementId) pairs, and
      46              : /// used by the linear multistep local time stepping code.
      47              : ///
      48              : /// The `Dim` is the volume dimension, not the face dimension.
      49              : template <size_t Dim>
      50            1 : struct MortarDataHistory : db::SimpleTag {
      51            0 :   using type =
      52              :       DirectionalIdMap<Dim, TimeSteppers::BoundaryHistory<
      53              :                                 ::evolution::dg::MortarData<Dim>,
      54              :                                 ::evolution::dg::MortarData<Dim>, DataVector>>;
      55              : };
      56              : 
      57              : /// Mesh on the mortars, indexed by (Direction, ElementId) pairs
      58              : ///
      59              : /// The `Dim` is the volume dimension, not the face dimension.
      60              : template <size_t Dim>
      61            1 : struct MortarMesh : db::SimpleTag {
      62            0 :   using type = DirectionalIdMap<Dim, Mesh<Dim - 1>>;
      63              : };
      64              : 
      65              : /// The ::evolution::dg::MortarInfo for each mortar
      66              : ///
      67              : /// The `Dim` is the volume dimension, not the face dimension.
      68              : template <size_t Dim>
      69            1 : struct MortarInfo : db::SimpleTag {
      70            0 :   using type = DirectionalIdMap<Dim, ::evolution::dg::MortarInfo<Dim>>;
      71              : };
      72              : 
      73              : /// The next temporal id at which to receive data on the specified mortar.
      74              : ///
      75              : /// The `Dim` is the volume dimension, not the face dimension.
      76              : template <size_t Dim>
      77            1 : struct MortarNextTemporalId : db::SimpleTag {
      78            0 :   using type = DirectionalIdMap<Dim, TimeStepId>;
      79              : };
      80              : 
      81              : /// \brief The BoundaryMessage received from the inbox
      82              : ///
      83              : /// We must store the `std::unique_ptr` in the DataBox so the memory persists in
      84              : /// case data was sent from another node
      85              : /// \tparam Dim The volume dimension, not the face dimension
      86              : template <size_t Dim>
      87            1 : struct BoundaryMessageFromInbox : db::SimpleTag {
      88            0 :   using type = DirectionalIdMap<Dim, std::unique_ptr<BoundaryMessage<Dim>>>;
      89              : };
      90              : }  // namespace evolution::dg::Tags
        

Generated by: LCOV version 2.0-1