Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include "DataStructures/DataBox/Tag.hpp"
7 : #include "DataStructures/Tensor/Tensor.hpp"
8 :
9 : /// \cond
10 : class DataVector;
11 : /// \endcond
12 :
13 : namespace domain::Tags {
14 :
15 : /*!
16 : * \brief The determinant of the induced Jacobian on a surface
17 : *
18 : * The surface Jacobian determinant on a surface \f$\Sigma\f$ with constant
19 : * logical coordinate \f$\xi^i\f$ is:
20 : *
21 : * \f{equation}
22 : * J^\Sigma = J \sqrt{\gamma^{jk} (J^{-1})^i_j (J^{-1})^i_k}
23 : * \f}
24 : *
25 : * where \f$J^i_j = \partial x^i / \xi^j\f$ is the volume Jacobian with
26 : * determinant \f$J\f$ and inverse \f$(J^{-1})^i_j = \partial \xi^i / \partial
27 : * x^j\f$. Note that the square root in the expression above is the magnitude of
28 : * the unnormalized face normal, where \f$\gamma^{jk}\f$ is the inverse spatial
29 : * metric.
30 : */
31 : template <typename SourceFrame, typename TargetFrame>
32 1 : struct DetSurfaceJacobian : db::SimpleTag {
33 0 : using type = Scalar<DataVector>;
34 : };
35 :
36 : } // namespace domain::Tags
|