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