SpECTRE Documentation Coverage Report
Current view: top level - NumericalAlgorithms/DiscontinuousGalerkin - Tags.hpp Hit Total Coverage
Commit: 923cd4a8ea30f5a5589baa60b0a93e358ca9f8e8 Lines: 5 19 26.3 %
Date: 2025-11-07 19:37:56
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 <array>
       7             : #include <cstddef>
       8             : #include <string>
       9             : #include <utility>
      10             : 
      11             : #include "DataStructures/DataBox/Tag.hpp"
      12             : #include "DataStructures/DataBox/TagName.hpp"
      13             : #include "Domain/Structure/DirectionalIdMap.hpp"
      14             : #include "NumericalAlgorithms/DiscontinuousGalerkin/SimpleMortarData.hpp"
      15             : #include "NumericalAlgorithms/Spectral/SegmentSize.hpp"
      16             : #include "Options/String.hpp"
      17             : #include "Utilities/PrettyType.hpp"
      18             : 
      19             : /// Functionality related to discontinuous Galerkin schemes
      20             : namespace dg {}
      21             : 
      22             : namespace Tags {
      23             : /// \ingroup DataBoxTagsGroup
      24             : /// \ingroup DiscontinuousGalerkinGroup
      25             : /// Data on mortars, indexed by a DirectionalId
      26             : template <typename Tag, size_t VolumeDim>
      27           1 : struct Mortars : db::PrefixTag, db::SimpleTag {
      28           0 :   using tag = Tag;
      29           0 :   using type = DirectionalIdMap<VolumeDim, typename Tag::type>;
      30             : };
      31             : 
      32             : /// \ingroup DataBoxTagsGroup
      33             : /// \ingroup DiscontinuousGalerkinGroup
      34             : /// Size of a mortar, relative to the element face.  That is, the part
      35             : /// of the face that it covers.
      36             : template <size_t Dim>
      37           1 : struct MortarSize : db::SimpleTag {
      38           0 :   using type = std::array<Spectral::SegmentSize, Dim>;
      39             : };
      40             : }  // namespace Tags
      41             : 
      42             : namespace OptionTags {
      43             : /*!
      44             :  * \ingroup OptionGroupsGroup
      45             :  * \brief Holds the `OptionTags::NumericalFlux` option in the input file
      46             :  */
      47           1 : struct NumericalFluxGroup {
      48           0 :   static std::string name() { return "NumericalFlux"; }
      49           0 :   static constexpr Options::String help = "The numerical flux scheme";
      50             : };
      51             : 
      52             : /*!
      53             :  * \ingroup OptionTagsGroup
      54             :  * \brief The option tag that retrieves the parameters for the numerical
      55             :  * flux from the input file
      56             :  */
      57             : template <typename NumericalFluxType>
      58           1 : struct NumericalFlux {
      59           0 :   static std::string name() { return pretty_type::name<NumericalFluxType>(); }
      60           0 :   static constexpr Options::String help = "Options for the numerical flux";
      61           0 :   using type = NumericalFluxType;
      62           0 :   using group = NumericalFluxGroup;
      63             : };
      64             : }  // namespace OptionTags
      65             : 
      66             : namespace Tags {
      67             : /*!
      68             :  * \brief The global cache tag for the numerical flux
      69             :  */
      70             : template <typename NumericalFluxType>
      71           1 : struct NumericalFlux : db::SimpleTag {
      72           0 :   using type = NumericalFluxType;
      73           0 :   using option_tags =
      74             :       tmpl::list<::OptionTags::NumericalFlux<NumericalFluxType>>;
      75             : 
      76           0 :   static constexpr bool pass_metavariables = false;
      77           0 :   static NumericalFluxType create_from_options(
      78             :       const NumericalFluxType& numerical_flux) {
      79             :     return numerical_flux;
      80             :   }
      81             : };
      82             : }  // namespace Tags

Generated by: LCOV version 1.14