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/IndexType.hpp" 10 : #include "Domain/Structure/DirectionMap.hpp" 11 : #include "Evolution/DgSubcell/Tags/Coordinates.hpp" 12 : #include "Evolution/DgSubcell/Tags/Jacobians.hpp" 13 : 14 : namespace evolution::dg::subcell::Tags { 15 : /// Inverse Jacobian data stored in the ghost zone. 16 : /// 17 : /// The `DirectionalIdMap` stores the grid coordinates and logical to grid 18 : /// inverse Jacobians in the ghost zone to avoid recomputing these data when 19 : /// full Jacobians are needed. We store the grid coordinates to be able to 20 : /// compute the grid to inertial Jacobian at each time step. 21 : template <size_t Dim> 22 1 : struct GhostZoneInverseJacobian : db::SimpleTag { 23 0 : using type = DirectionMap< 24 : Dim, Variables<tmpl::list<Coordinates<Dim, Frame::Grid>, 25 : evolution::dg::subcell::fd::Tags:: 26 : InverseJacobianLogicalToGrid<Dim>>>>; 27 : }; 28 : } // namespace evolution::dg::subcell::Tags