SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/Cce - BoundaryDataTags.hpp Hit Total Coverage
Commit: f23e75c235cae5144b8ac7ce01280be5b8cd2c8a Lines: 1 7 14.3 %
Date: 2024-09-07 06:21:00
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             : 
       8             : #include "DataStructures/DataBox/Tag.hpp"
       9             : #include "DataStructures/Tensor/TypeAliases.hpp"
      10             : #include "Utilities/TMPL.hpp"
      11             : 
      12             : /// \cond
      13             : class ComplexDataVector;
      14             : class DataVector;
      15             : /// \endcond
      16             : 
      17             : namespace Cce {
      18           0 : namespace Frame {
      19             : /// The frame for the spherical metric in which the radial coordinate is an
      20             : /// affine parameter along outward-pointing null geodesics.
      21           1 : struct RadialNull {};
      22             : }  // namespace Frame
      23             : 
      24             : // tensor aliases for brevity
      25           0 : using SphericaliCartesianJ = Tensor<
      26             :     DataVector, tmpl::integral_list<std::int32_t, 2, 1>,
      27             :     index_list<SpatialIndex<3, UpLo::Lo, ::Frame::Spherical<::Frame::Inertial>>,
      28             :                SpatialIndex<3, UpLo::Lo, ::Frame::Inertial>>>;
      29             : 
      30           0 : using CartesianiSphericalJ =
      31             :     Tensor<DataVector, tmpl::integral_list<std::int32_t, 2, 1>,
      32             :            index_list<SpatialIndex<3, UpLo::Lo, ::Frame::Inertial>,
      33             :                       SpatialIndex<3, UpLo::Up,
      34             :                                    ::Frame::Spherical<::Frame::Inertial>>>>;
      35             : 
      36           0 : using AngulariCartesianA = Tensor<
      37             :   DataVector, tmpl::integral_list<std::int32_t, 2, 1>,
      38             :   index_list<SpatialIndex<2, UpLo::Lo, ::Frame::Spherical<::Frame::Inertial>>,
      39             :              SpacetimeIndex<3, UpLo::Lo, ::Frame::Inertial>>>;
      40             : 
      41           0 : using SphericaliCartesianjj = Tensor<
      42             :     DataVector, tmpl::integral_list<std::int32_t, 2, 1, 1>,
      43             :     index_list<SpatialIndex<3, UpLo::Lo, ::Frame::Spherical<::Frame::Inertial>>,
      44             :                SpatialIndex<3, UpLo::Lo, ::Frame::Inertial>,
      45             :                SpatialIndex<3, UpLo::Lo, ::Frame::Inertial>>>;
      46             : 
      47             : namespace Tags {
      48             : namespace detail {
      49             : // this provides a set of tags for the purposes of allocating once in the entire
      50             : // Boundary data computation; these tags are currently not used outside
      51             : // intermediate steps of the procedure in `BoundaryData.hpp`
      52             : 
      53             : struct CosPhi : db::SimpleTag {
      54             :   using type = Scalar<DataVector>;
      55             : };
      56             : 
      57             : struct CosTheta : db::SimpleTag {
      58             :   using type = Scalar<DataVector>;
      59             : };
      60             : 
      61             : struct SinPhi : db::SimpleTag {
      62             :   using type = Scalar<DataVector>;
      63             : };
      64             : 
      65             : struct SinTheta : db::SimpleTag {
      66             :   using type = Scalar<DataVector>;
      67             : };
      68             : 
      69             : struct CartesianCoordinates : db::SimpleTag {
      70             :   using type = tnsr::I<DataVector, 3>;
      71             : };
      72             : 
      73             : struct CartesianToSphericalJacobian : db::SimpleTag {
      74             :   using type = SphericaliCartesianJ;
      75             : };
      76             : 
      77             : struct InverseCartesianToSphericalJacobian : db::SimpleTag {
      78             :   using type = CartesianiSphericalJ;
      79             : };
      80             : 
      81             : struct WorldtubeNormal : db::SimpleTag {
      82             :   using type = tnsr::I<DataVector, 3>;
      83             : };
      84             : 
      85             : struct UpDyad : db::SimpleTag {
      86             :   using type = tnsr::I<ComplexDataVector, 2, Frame::RadialNull>;
      87             : };
      88             : 
      89             : struct DownDyad : db::SimpleTag {
      90             :   using type = tnsr::i<ComplexDataVector, 2, Frame::RadialNull>;
      91             : };
      92             : 
      93             : struct RealBondiR : db::SimpleTag {
      94             :   using type = Scalar<DataVector>;
      95             : };
      96             : 
      97             : struct AngularDNullL : db::SimpleTag {
      98             :   using type = AngulariCartesianA;
      99             : };
     100             : 
     101             : struct NullL : db::SimpleTag {
     102             :   using type = tnsr::A<DataVector, 3>;
     103             : };
     104             : 
     105             : template <typename Tag>
     106             : struct DLambda : db::SimpleTag {
     107             :   using type = typename Tag::type;
     108             : };
     109             : 
     110             : }  // namespace detail
     111             : }  // namespace Tags
     112             : }  // namespace Cce

Generated by: LCOV version 1.14