Jacobians.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 #include <string>
8 
9 #include "DataStructures/DataBox/Tag.hpp"
11 
13 /// \brief The inverse Jacobian from the logical frame to the grid frame at the
14 /// cell centers.
15 ///
16 /// Specifically, \f$\partial x^{\bar{i}} / \partial x^i\f$, where \f$\bar{i}\f$
17 /// denotes the logical frame and \f$i\f$ denotes the grid frame.
18 ///
19 /// \note stored as a `std::optional` so we can reset it when switching to DG
20 /// and reduce the memory footprint.
21 template <size_t Dim>
23  static std::string name() noexcept { return "InverseJacobian(Logical,Grid)"; }
24  using type = std::optional<
25  ::InverseJacobian<DataVector, Dim, Frame::Logical, Frame::Grid>>;
26 };
27 
28 /// \brief The determinant of the inverse Jacobian from the logical frame to the
29 /// grid frame at the cell centers.
30 ///
31 /// \note stored as a `std::optional` so we can reset it when switching to DG
32 /// and reduce the memory footprint.
34  static std::string name() noexcept {
35  return "Det(InverseJacobian(Logical,Grid))";
36  }
38 };
39 } // namespace evolution::dg::subcell::fd::Tags
std::string
evolution::dg::subcell::fd::Tags::InverseJacobianLogicalToGrid
The inverse Jacobian from the logical frame to the grid frame at the cell centers.
Definition: Jacobians.hpp:22
db::SimpleTag
Mark a struct as a simple tag by inheriting from this.
Definition: Tag.hpp:36
cstddef
evolution::dg::subcell::fd::Tags
Tags for the DG-subcell finite difference solver
Definition: Jacobians.hpp:12
TypeAliases.hpp
std::optional
evolution::dg::subcell::fd::Tags::DetInverseJacobianLogicalToGrid
The determinant of the inverse Jacobian from the logical frame to the grid frame at the cell centers.
Definition: Jacobians.hpp:33
string