Christoffel.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 
9 #include "Utilities/Gsl.hpp"
10 
11 namespace GeneralizedHarmonic {
12 /// @{
13 /*!
14  * \ingroup GeneralRelativityGroup
15  * \brief Computes spatial Christoffel symbol of the 2nd kind from the
16  * the generalized harmonic spatial derivative variable and the
17  * inverse spatial metric.
18  *
19  * \details
20  * If \f$ \Phi_{kab} \f$ is the generalized harmonic spatial derivative
21  * variable \f$ \Phi_{kab} = \partial_k \psi_{ab}\f$ and \f$\gamma^{ij}\f$
22  * is the inverse spatial metric, the Christoffel symbols are
23  * \f[
24  * \Gamma^m_{ij} = \frac{1}{2}\gamma^{mk}(\Phi_{ijk}+\Phi_{jik}-\Phi_{kij}).
25  * \f]
26  *
27  * In the not_null version, no memory allocations are performed if the
28  * output tensor already has the correct size.
29  *
30  */
31 template <size_t SpatialDim, typename Frame, typename DataType>
33  const gsl::not_null<tnsr::Ijj<DataType, SpatialDim, Frame>*> christoffel,
34  const tnsr::iaa<DataType, SpatialDim, Frame>& phi,
35  const tnsr::II<DataType, SpatialDim, Frame>& inv_metric) noexcept;
36 
37 template <size_t SpatialDim, typename Frame, typename DataType>
39  const tnsr::iaa<DataType, SpatialDim, Frame>& phi,
40  const tnsr::II<DataType, SpatialDim, Frame>& inv_metric) noexcept
41  -> tnsr::Ijj<DataType, SpatialDim, Frame>;
42 /// @}
43 } // namespace GeneralizedHarmonic
GeneralizedHarmonic
Items related to evolving the first-order generalized harmonic system.
Definition: BjorhusImpl.hpp:20
cstddef
GeneralizedHarmonic::christoffel_second_kind
void christoffel_second_kind(const gsl::not_null< tnsr::Ijj< DataType, SpatialDim, Frame > * > christoffel, const tnsr::iaa< DataType, SpatialDim, Frame > &phi, const tnsr::II< DataType, SpatialDim, Frame > &inv_metric) noexcept
Computes spatial Christoffel symbol of the 2nd kind from the the generalized harmonic spatial derivat...
GeneralizedHarmonic::phi
void phi(gsl::not_null< tnsr::iaa< DataType, SpatialDim, Frame > * > phi, const Scalar< DataType > &lapse, const tnsr::i< DataType, SpatialDim, Frame > &deriv_lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::iJ< DataType, SpatialDim, Frame > &deriv_shift, const tnsr::ii< DataType, SpatialDim, Frame > &spatial_metric, const tnsr::ijj< DataType, SpatialDim, Frame > &deriv_spatial_metric) noexcept
Computes the auxiliary variable used by the generalized harmonic formulation of Einstein's equations...
Gsl.hpp
TypeAliases.hpp
gsl::not_null
Require a pointer to not be a nullptr
Definition: ReadSpecPiecewisePolynomial.hpp:13