SpECTRE Documentation Coverage Report
Current view: top level - Evolution/DiscontinuousGalerkin - NormalVectorTags.hpp Hit Total Coverage
Commit: 9ddc33268b29014a4956c8f0c24ca90b397463e1 Lines: 3 7 42.9 %
Date: 2024-04-26 20:00:04
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 <optional>
       8             : 
       9             : #include "DataStructures/DataBox/Tag.hpp"
      10             : #include "DataStructures/Tensor/TypeAliases.hpp"
      11             : #include "DataStructures/Variables.hpp"
      12             : #include "Domain/Structure/Direction.hpp"
      13             : #include "Domain/Structure/DirectionMap.hpp"
      14             : #include "Utilities/TMPL.hpp"
      15             : 
      16             : namespace evolution::dg::Tags {
      17             : /// The magnitude of the unnormalized normal covector to the interface
      18           1 : struct MagnitudeOfNormal : db::SimpleTag {
      19           0 :   using type = Scalar<DataVector>;
      20             : };
      21             : 
      22             : /// The normal covector to the interface
      23             : template <size_t Dim>
      24           1 : struct NormalCovector : db::SimpleTag {
      25           0 :   using type = tnsr::i<DataVector, Dim, Frame::Inertial>;
      26             : };
      27             : 
      28             : /// The normal covector and its magnitude for all internal faces of an element.
      29             : ///
      30             : /// The combined tag is used to make the allocations be in a Variables
      31             : ///
      32             : /// We use a `std::optional` to keep track of whether or not these values are
      33             : /// up-to-date.
      34             : template <size_t Dim>
      35           1 : struct NormalCovectorAndMagnitude : db::SimpleTag {
      36           0 :   using type = DirectionMap<
      37             :       Dim, std::optional<
      38             :                Variables<tmpl::list<MagnitudeOfNormal, NormalCovector<Dim>>>>>;
      39             : };
      40             : }  // namespace evolution::dg::Tags

Generated by: LCOV version 1.14