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/Tensor/EagerMath/Magnitude.hpp" 9 : #include "Domain/FaceNormal.hpp" 10 : #include "Domain/Tags.hpp" 11 : 12 : namespace domain::Tags { 13 : 14 : /// The _normalized_ face normal 15 : template <size_t Dim, typename LocalFrame = Frame::Inertial> 16 1 : using FaceNormal = 17 : ::Tags::Normalized<Tags::UnnormalizedFaceNormal<Dim, LocalFrame>>; 18 : 19 : /// The normalized face normal vector, i.e. the `FaceNormal` raised with the 20 : /// spatial metric. 21 : template <size_t Dim, typename LocalFrame = Frame::Inertial> 22 1 : struct FaceNormalVector : db::SimpleTag { 23 0 : using type = tnsr::I<DataVector, Dim, LocalFrame>; 24 : }; 25 : 26 : /// The magnitude of the _unnormalized_ face normal, see 27 : /// `::unnormalized_face_normal` 28 : template <size_t Dim, typename LocalFrame = Frame::Inertial> 29 1 : using UnnormalizedFaceNormalMagnitude = 30 : ::Tags::Magnitude<Tags::UnnormalizedFaceNormal<Dim, LocalFrame>>; 31 : 32 : } // namespace domain::Tags