Christoffel.hpp
Go to the documentation of this file.
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 ///\file
5 /// Defines functions to calculate Christoffel symbols
6 
7 #pragma once
8 
9 #include <cstddef>
10 
12 
13 /// \cond
14 namespace gsl {
15 template <class>
16 class not_null;
17 } // namespace gsl
18 /// \endcond
19 
20 namespace gr {
21 // @{
22 /*!
23  * \ingroup GeneralRelativityGroup
24  * \brief Computes Christoffel symbol of the first kind from derivative of
25  * metric
26  *
27  * \details Computes Christoffel symbol \f$\Gamma_{abc}\f$ as:
28  * \f$ \Gamma_{cab} = \frac{1}{2} ( \partial_a g_{bc} + \partial_b g_{ac}
29  * - \partial_c g_{ab}) \f$
30  * where \f$g_{bc}\f$ is either a spatial or spacetime metric
31  */
32 template <size_t SpatialDim, typename Frame, IndexType Index, typename DataType>
34  gsl::not_null<tnsr::abb<DataType, SpatialDim, Frame, Index>*> christoffel,
35  const tnsr::abb<DataType, SpatialDim, Frame, Index>& d_metric) noexcept;
36 
37 template <size_t SpatialDim, typename Frame, IndexType Index, typename DataType>
38 tnsr::abb<DataType, SpatialDim, Frame, Index> christoffel_first_kind(
39  const tnsr::abb<DataType, SpatialDim, Frame, Index>& d_metric) noexcept;
40 // @}
41 } // namespace gr
Implementations from the Guideline Support Library.
Definition: ConservativeFromPrimitive.hpp:10
Holds functions related to general relativity.
Definition: KerrHorizon.cpp:14
void christoffel_first_kind(gsl::not_null< tnsr::abb< DataType, SpatialDim, Frame, Index > *> christoffel, const tnsr::abb< DataType, SpatialDim, Frame, Index > &d_metric) noexcept
Computes Christoffel symbol of the first kind from derivative of metric.
Defines a list of useful type aliases for tensors.
Require a pointer to not be a nullptr
Definition: ConservativeFromPrimitive.hpp:12