Namespaces | Classes | Typedefs | Functions
gr Namespace Reference

Namespaces

 Solutions
 Classes which implement analytic solutions to Einstein's equations.
 

Classes

class  KerrSchildCoords
 Contains helper functions for transforming tensors in Kerr spacetime to Kerr-Schild coordinates. More...
 

Typedefs

template<size_t Dim, typename DataType >
using tags_for_hydro = tmpl::list< gr::Tags::Lapse< DataType >, gr::Tags::Shift< Dim, Frame::Inertial, DataType >, gr::Tags::SpatialMetric< Dim, Frame::Inertial, DataType >, gr::Tags::InverseSpatialMetric< Dim, Frame::Inertial, DataType >, gr::Tags::SqrtDetSpatialMetric< DataType >, ::Tags::deriv< gr::Tags::Lapse< DataType >, tmpl::size_t< Dim >, Frame::Inertial >, ::Tags::deriv< gr::Tags::Shift< Dim, Frame::Inertial, DataType >, tmpl::size_t< Dim >, Frame::Inertial >, ::Tags::deriv< gr::Tags::SpatialMetric< Dim, Frame::Inertial, DataType >, tmpl::size_t< Dim >, Frame::Inertial >, gr::Tags::ExtrinsicCurvature< Dim, Frame::Inertial, DataType > >
 GR Tags commonly needed for the evolution of hydro systems.
 
template<size_t Dim, typename DataType >
using analytic_solution_tags = tmpl::list< gr::Tags::Lapse< DataType >, ::Tags::dt< gr::Tags::Lapse< DataType > >, ::Tags::deriv< gr::Tags::Lapse< DataType >, tmpl::size_t< Dim >, Frame::Inertial >, gr::Tags::Shift< Dim, Frame::Inertial, DataType >, ::Tags::dt< gr::Tags::Shift< Dim, Frame::Inertial, DataType > >, ::Tags::deriv< gr::Tags::Shift< Dim, Frame::Inertial, DataType >, tmpl::size_t< Dim >, Frame::Inertial >, gr::Tags::SpatialMetric< Dim, Frame::Inertial, DataType >, ::Tags::dt< gr::Tags::SpatialMetric< Dim, Frame::Inertial, DataType > >, ::Tags::deriv< gr::Tags::SpatialMetric< Dim, Frame::Inertial, DataType >, tmpl::size_t< Dim >, Frame::Inertial >, gr::Tags::SqrtDetSpatialMetric< DataType >, gr::Tags::ExtrinsicCurvature< Dim, Frame::Inertial, DataType >, gr::Tags::InverseSpatialMetric< Dim, Frame::Inertial, DataType > >
 The tags for the variables returned by GR analytic solutions.
 

Functions

template<size_t SpatialDim, typename Frame , IndexType Index, typename DataType >
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. More...
 
template<size_t SpatialDim, typename Frame , IndexType Index, typename DataType >
tnsr::abb< DataType, SpatialDim, Frame, Indexchristoffel_first_kind (const tnsr::abb< DataType, SpatialDim, Frame, Index > &d_metric) noexcept
 
template<size_t SpatialDim, typename Frame , typename DataType >
void derivatives_of_spacetime_metric (gsl::not_null< tnsr::abb< DataType, SpatialDim, Frame > * > spacetime_deriv_spacetime_metric, const Scalar< DataType > &lapse, const Scalar< DataType > &dt_lapse, const tnsr::i< DataType, SpatialDim, Frame > &deriv_lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::I< DataType, SpatialDim, Frame > &dt_shift, const tnsr::iJ< DataType, SpatialDim, Frame > &deriv_shift, const tnsr::ii< DataType, SpatialDim, Frame > &spatial_metric, const tnsr::ii< DataType, SpatialDim, Frame > &dt_spatial_metric, const tnsr::ijj< DataType, SpatialDim, Frame > &deriv_spatial_metric) noexcept
 Computes spacetime derivative of spacetime metric from spatial metric, lapse, shift, and their space and time derivatives. More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
tnsr::abb< DataType, SpatialDim, Frame > derivatives_of_spacetime_metric (const Scalar< DataType > &lapse, const Scalar< DataType > &dt_lapse, const tnsr::i< DataType, SpatialDim, Frame > &deriv_lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::I< DataType, SpatialDim, Frame > &dt_shift, const tnsr::iJ< DataType, SpatialDim, Frame > &deriv_shift, const tnsr::ii< DataType, SpatialDim, Frame > &spatial_metric, const tnsr::ii< DataType, SpatialDim, Frame > &dt_spatial_metric, const tnsr::ijj< DataType, SpatialDim, Frame > &deriv_spatial_metric) noexcept
 
template<size_t SpatialDim, typename Frame , typename DataType >
tnsr::ii< DataType, SpatialDim, Frame > extrinsic_curvature (const Scalar< DataType > &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::ii< DataType, SpatialDim, Frame > &dt_spatial_metric, const tnsr::ijj< DataType, SpatialDim, Frame > &deriv_spatial_metric) noexcept
 Computes extrinsic curvature from metric and derivatives. More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
void extrinsic_curvature (gsl::not_null< tnsr::ii< DataType, SpatialDim, Frame > * > ex_curvature, const Scalar< DataType > &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::ii< DataType, SpatialDim, Frame > &dt_spatial_metric, const tnsr::ijj< DataType, SpatialDim, Frame > &deriv_spatial_metric) noexcept
 
template<size_t VolumeDim, typename Frame , typename DataType >
tnsr::a< DataType, VolumeDim, Frame > interface_null_normal (const tnsr::a< DataType, VolumeDim, Frame > &spacetime_normal_one_form, const tnsr::i< DataType, VolumeDim, Frame > &interface_unit_normal_one_form, const double sign) noexcept
 Compute null normal one-form to the boundary of a closed region in a spatial slice of spacetime. More...
 
template<size_t VolumeDim, typename Frame , typename DataType >
void interface_null_normal (gsl::not_null< tnsr::a< DataType, VolumeDim, Frame > * > null_one_form, const tnsr::a< DataType, VolumeDim, Frame > &spacetime_normal_one_form, const tnsr::i< DataType, VolumeDim, Frame > &interface_unit_normal_one_form, const double sign) noexcept
 
template<size_t VolumeDim, typename Frame , typename DataType >
tnsr::A< DataType, VolumeDim, Frame > interface_null_normal (const tnsr::A< DataType, VolumeDim, Frame > &spacetime_normal_vector, const tnsr::I< DataType, VolumeDim, Frame > &interface_unit_normal_vector, const double sign) noexcept
 Compute null normal vector to the boundary of a closed region in a spatial slice of spacetime. More...
 
template<size_t VolumeDim, typename Frame , typename DataType >
void interface_null_normal (gsl::not_null< tnsr::A< DataType, VolumeDim, Frame > * > null_vector, const tnsr::A< DataType, VolumeDim, Frame > &spacetime_normal_vector, const tnsr::I< DataType, VolumeDim, Frame > &interface_unit_normal_vector, const double sign) noexcept
 
template<size_t SpatialDim, typename Frame , typename DataType >
void inverse_spacetime_metric (gsl::not_null< tnsr::AA< DataType, SpatialDim, Frame > * > inverse_spacetime_metric, const Scalar< DataType > &lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::II< DataType, SpatialDim, Frame > &inverse_spatial_metric) noexcept
 Compute inverse spacetime metric from inverse spatial metric, lapse and shift. More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
tnsr::AA< DataType, SpatialDim, Frame > inverse_spacetime_metric (const Scalar< DataType > &lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::II< DataType, SpatialDim, Frame > &inverse_spatial_metric) noexcept
 
bool operator!= (const KerrSchildCoords &lhs, const KerrSchildCoords &rhs) noexcept
 
template<size_t SpatialDim, typename Frame , typename DataType >
Scalar< DataType > lapse (const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::aa< DataType, SpatialDim, Frame > &spacetime_metric) noexcept
 Compute lapse from shift and spacetime metric. More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
void lapse (gsl::not_null< Scalar< DataType > * > lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::aa< DataType, SpatialDim, Frame > &spacetime_metric) noexcept
 
template<size_t VolumeDim, typename Frame , typename DataType >
tnsr::II< DataType, VolumeDim, Frame > transverse_projection_operator (const tnsr::II< DataType, VolumeDim, Frame > &inverse_spatial_metric, const tnsr::I< DataType, VolumeDim, Frame > &normal_vector) noexcept
 Compute projection operator onto an interface. More...
 
template<size_t VolumeDim, typename Frame , typename DataType >
void transverse_projection_operator (gsl::not_null< tnsr::II< DataType, VolumeDim, Frame > * > projection_tensor, const tnsr::II< DataType, VolumeDim, Frame > &inverse_spatial_metric, const tnsr::I< DataType, VolumeDim, Frame > &normal_vector) noexcept
 
template<size_t VolumeDim, typename Frame , typename DataType >
tnsr::ii< DataType, VolumeDim, Frame > transverse_projection_operator (const tnsr::ii< DataType, VolumeDim, Frame > &spatial_metric, const tnsr::i< DataType, VolumeDim, Frame > &normal_one_form) noexcept
 Compute projection operator onto an interface. More...
 
template<size_t VolumeDim, typename Frame , typename DataType >
void transverse_projection_operator (gsl::not_null< tnsr::ii< DataType, VolumeDim, Frame > * > projection_tensor, const tnsr::ii< DataType, VolumeDim, Frame > &spatial_metric, const tnsr::i< DataType, VolumeDim, Frame > &normal_one_form) noexcept
 
template<size_t VolumeDim, typename Frame , typename DataType >
tnsr::Ij< DataType, VolumeDim, Frame > transverse_projection_operator (const tnsr::I< DataType, VolumeDim, Frame > &normal_vector, const tnsr::i< DataType, VolumeDim, Frame > &normal_one_form) noexcept
 Compute projection operator onto an interface. More...
 
template<size_t VolumeDim, typename Frame , typename DataType >
void transverse_projection_operator (gsl::not_null< tnsr::Ij< DataType, VolumeDim, Frame > * > projection_tensor, const tnsr::I< DataType, VolumeDim, Frame > &normal_vector, const tnsr::i< DataType, VolumeDim, Frame > &normal_one_form) noexcept
 
template<size_t VolumeDim, typename Frame , typename DataType >
tnsr::aa< DataType, VolumeDim, Frame > transverse_projection_operator (const tnsr::aa< DataType, VolumeDim, Frame > &spacetime_metric, const tnsr::a< DataType, VolumeDim, Frame > &spacetime_normal_one_form, const tnsr::i< DataType, VolumeDim, Frame > &interface_unit_normal_one_form) noexcept
 Compute spacetime projection operator onto an interface. More...
 
template<size_t VolumeDim, typename Frame , typename DataType >
void transverse_projection_operator (gsl::not_null< tnsr::aa< DataType, VolumeDim, Frame > * > projection_tensor, const tnsr::aa< DataType, VolumeDim, Frame > &spacetime_metric, const tnsr::a< DataType, VolumeDim, Frame > &spacetime_normal_one_form, const tnsr::i< DataType, VolumeDim, Frame > &interface_unit_normal_one_form) noexcept
 
template<size_t VolumeDim, typename Frame , typename DataType >
tnsr::AA< DataType, VolumeDim, Frame > transverse_projection_operator (const tnsr::AA< DataType, VolumeDim, Frame > &inverse_spacetime_metric, const tnsr::A< DataType, VolumeDim, Frame > &spacetime_normal_vector, const tnsr::I< DataType, VolumeDim, Frame > &interface_unit_normal_vector) noexcept
 Compute spacetime projection operator onto an interface. More...
 
template<size_t VolumeDim, typename Frame , typename DataType >
void transverse_projection_operator (gsl::not_null< tnsr::AA< DataType, VolumeDim, Frame > * > projection_tensor, const tnsr::AA< DataType, VolumeDim, Frame > &inverse_spacetime_metric, const tnsr::A< DataType, VolumeDim, Frame > &spacetime_normal_vector, const tnsr::I< DataType, VolumeDim, Frame > &interface_unit_normal_vector) noexcept
 
template<size_t VolumeDim, typename Frame , typename DataType >
tnsr::Ab< DataType, VolumeDim, Frame > transverse_projection_operator (const tnsr::A< DataType, VolumeDim, Frame > &spacetime_normal_vector, const tnsr::a< DataType, VolumeDim, Frame > &spacetime_normal_one_form, const tnsr::I< DataType, VolumeDim, Frame > &interface_unit_normal_vector, const tnsr::i< DataType, VolumeDim, Frame > &interface_unit_normal_one_form) noexcept
 Compute spacetime projection operator onto an interface. More...
 
template<size_t VolumeDim, typename Frame , typename DataType >
void transverse_projection_operator (gsl::not_null< tnsr::Ab< DataType, VolumeDim, Frame > * > projection_tensor, const tnsr::A< DataType, VolumeDim, Frame > &spacetime_normal_vector, const tnsr::a< DataType, VolumeDim, Frame > &spacetime_normal_one_form, const tnsr::I< DataType, VolumeDim, Frame > &interface_unit_normal_vector, const tnsr::i< DataType, VolumeDim, Frame > &interface_unit_normal_one_form) noexcept
 
template<size_t SpatialDim, typename Frame , IndexType Index, typename DataType >
void ricci_tensor (gsl::not_null< tnsr::aa< DataType, SpatialDim, Frame, Index > * > result, const tnsr::Abb< DataType, SpatialDim, Frame, Index > &christoffel_2nd_kind, const tnsr::aBcc< DataType, SpatialDim, Frame, Index > &d_christoffel_2nd_kind) noexcept
 Computes Ricci tensor from the (spatial or spacetime) Christoffel symbol of the second kind and its derivative. More...
 
template<size_t SpatialDim, typename Frame , IndexType Index, typename DataType >
tnsr::aa< DataType, SpatialDim, Frame, Indexricci_tensor (const tnsr::Abb< DataType, SpatialDim, Frame, Index > &christoffel_2nd_kind, const tnsr::aBcc< DataType, SpatialDim, Frame, Index > &d_christoffel_2nd_kind) noexcept
 
template<size_t SpatialDim, typename Frame , typename DataType >
tnsr::I< DataType, SpatialDim, Frame > shift (const tnsr::aa< DataType, SpatialDim, Frame > &spacetime_metric, const tnsr::II< DataType, SpatialDim, Frame > &inverse_spatial_metric) noexcept
 Compute shift from spacetime metric and inverse spatial metric. More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
void shift (gsl::not_null< tnsr::I< DataType, SpatialDim, Frame > * > shift, const tnsr::aa< DataType, SpatialDim, Frame > &spacetime_metric, const tnsr::II< DataType, SpatialDim, Frame > &inverse_spatial_metric) noexcept
 
template<size_t Dim, typename Frame , typename DataType >
void spacetime_metric (gsl::not_null< tnsr::aa< DataType, Dim, Frame > * > spacetime_metric, const Scalar< DataType > &lapse, const tnsr::I< DataType, Dim, Frame > &shift, const tnsr::ii< DataType, Dim, Frame > &spatial_metric) noexcept
 Computes the spacetime metric from the spatial metric, lapse, and shift. More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
tnsr::aa< DataType, SpatialDim, Frame > spacetime_metric (const Scalar< DataType > &lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::ii< DataType, SpatialDim, Frame > &spatial_metric) noexcept
 
template<size_t SpatialDim, typename Frame , typename DataType >
void spacetime_normal_one_form (gsl::not_null< tnsr::a< DataType, SpatialDim, Frame > * > normal_one_form, const Scalar< DataType > &lapse) noexcept
 Computes spacetime normal one-form from lapse. More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
tnsr::a< DataType, SpatialDim, Frame > spacetime_normal_one_form (const Scalar< DataType > &lapse) noexcept
 
template<size_t SpatialDim, typename Frame , typename DataType >
tnsr::A< DataType, SpatialDim, Frame > spacetime_normal_vector (const Scalar< DataType > &lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift) noexcept
 Computes spacetime normal vector from lapse and shift. More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
void spacetime_normal_vector (gsl::not_null< tnsr::A< DataType, SpatialDim, Frame > * > spacetime_normal_vector, const Scalar< DataType > &lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift) noexcept
 
template<size_t SpatialDim, typename Frame , typename DataType >
tnsr::ii< DataType, SpatialDim, Frame > spatial_metric (const tnsr::aa< DataType, SpatialDim, Frame > &spacetime_metric) noexcept
 Compute spatial metric from spacetime metric. More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
void spatial_metric (gsl::not_null< tnsr::ii< DataType, SpatialDim, Frame > * > spatial_metric, const tnsr::aa< DataType, SpatialDim, Frame > &spacetime_metric) noexcept
 
template<size_t SpatialDim, typename Frame , typename DataType >
void time_derivative_of_spacetime_metric (gsl::not_null< tnsr::aa< DataType, SpatialDim, Frame > * > dt_spacetime_metric, const Scalar< DataType > &lapse, const Scalar< DataType > &dt_lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::I< DataType, SpatialDim, Frame > &dt_shift, const tnsr::ii< DataType, SpatialDim, Frame > &spatial_metric, const tnsr::ii< DataType, SpatialDim, Frame > &dt_spatial_metric) noexcept
 Computes the time derivative of the spacetime metric from spatial metric, lapse, shift, and their time derivatives. More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
tnsr::aa< DataType, SpatialDim, Frame > time_derivative_of_spacetime_metric (const Scalar< DataType > &lapse, const Scalar< DataType > &dt_lapse, const tnsr::I< DataType, SpatialDim, Frame > &shift, const tnsr::I< DataType, SpatialDim, Frame > &dt_shift, const tnsr::ii< DataType, SpatialDim, Frame > &spatial_metric, const tnsr::ii< DataType, SpatialDim, Frame > &dt_spatial_metric) noexcept
 
template<size_t SpatialDim, typename Frame , typename DataType >
tnsr::ii< DataType, SpatialDim, Frame > weyl_electric (const tnsr::ii< DataType, SpatialDim, Frame > &spatial_ricci, const tnsr::ii< DataType, SpatialDim, Frame > &extrinsic_curvature, const tnsr::II< DataType, SpatialDim, Frame > &inverse_spatial_metric) noexcept
 Computes the electric part of the Weyl tensor in vacuum. More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
void weyl_electric (gsl::not_null< tnsr::ii< DataType, SpatialDim, Frame > * > weyl_electric_part, const tnsr::ii< DataType, SpatialDim, Frame > &spatial_ricci, const tnsr::ii< DataType, SpatialDim, Frame > &extrinsic_curvature, const tnsr::II< DataType, SpatialDim, Frame > &inverse_spatial_metric) noexcept
 
template<size_t SpatialDim, typename Frame , typename DataType >
Scalar< DataType > weyl_electric_scalar (const tnsr::ii< DataType, SpatialDim, Frame > &weyl_electric, const tnsr::II< DataType, SpatialDim, Frame > &inverse_spatial_metric) noexcept
 Computes the scalar \(E_{ij} E^{ij}\) from the electric part of the Weyl tensor \(E_{ij}\). More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
void weyl_electric_scalar (gsl::not_null< Scalar< DataType > * > weyl_electric_scalar_result, const tnsr::ii< DataType, SpatialDim, Frame > &weyl_electric, const tnsr::II< DataType, SpatialDim, Frame > &inverse_spatial_metric) noexcept
 
template<size_t SpatialDim, typename Frame , typename DataType >
tnsr::ii< DataType, SpatialDim, Frame > weyl_propagating (const tnsr::ii< DataType, SpatialDim, Frame > &ricci, const tnsr::ii< DataType, SpatialDim, Frame > &extrinsic_curvature, const tnsr::II< DataType, SpatialDim, Frame > &inverse_spatial_metric, const tnsr::ijj< DataType, SpatialDim, Frame > &cov_deriv_extrinsic_curvature, const tnsr::I< DataType, SpatialDim, Frame > &unit_interface_normal_vector, const tnsr::II< DataType, SpatialDim, Frame > &projection_IJ, const tnsr::ii< DataType, SpatialDim, Frame > &projection_ij, const tnsr::Ij< DataType, SpatialDim, Frame > &projection_Ij, const double sign) noexcept
 Computes the propagating modes of the Weyl tensor. More...
 
template<size_t SpatialDim, typename Frame , typename DataType >
void weyl_propagating (gsl::not_null< tnsr::ii< DataType, SpatialDim, Frame > * > weyl_prop_u8, const tnsr::ii< DataType, SpatialDim, Frame > &ricci, const tnsr::ii< DataType, SpatialDim, Frame > &extrinsic_curvature, const tnsr::II< DataType, SpatialDim, Frame > &inverse_spatial_metric, const tnsr::ijj< DataType, SpatialDim, Frame > &cov_deriv_extrinsic_curvature, const tnsr::I< DataType, SpatialDim, Frame > &unit_interface_normal_vector, const tnsr::II< DataType, SpatialDim, Frame > &projection_IJ, const tnsr::ii< DataType, SpatialDim, Frame > &projection_ij, const tnsr::Ij< DataType, SpatialDim, Frame > &projection_Ij, const double sign) noexcept
 

Detailed Description

Holds functions related to general relativity.

Function Documentation

◆ spacetime_normal_one_form()

template<size_t SpatialDim, typename Frame , typename DataType >
void gr::spacetime_normal_one_form ( gsl::not_null< tnsr::a< DataType, SpatialDim, Frame > * >  normal_one_form,
const Scalar< DataType > &  lapse 
)
noexcept

Computes spacetime normal one-form from lapse.

Details

If \(N\) is the lapse, then

\begin{align} n_t &= - N \\ n_i &= 0 \end{align}

is computed.