SpECTRE  v2022.05.05
Ccz4 Namespace Reference

Items related to evolving the first-order CCZ4 system. More...

Namespaces

namespace  OptionTags
 Input option tags for the CCZ4 evolution system.
 
namespace  Tags
 Tags for the CCZ4 formulation of Einstein equations.
 

Classes

struct  TimeDerivative
 Compute the RHS of the first order CCZ4 formulation of Einstein's equations [45]. More...
 

Enumerations

enum class  EvolveShift : bool { False = false , True = true }
 Indicates whether or not to evolve the shift in a system evolved using first order CCZ4 [45]. More...
 
enum class  SlicingConditionType : char { Harmonic , Log }
 Indicates which slicing condition to use in a system evolved using first order CCZ4 [45]. More...
 

Functions

template<size_t Dim, typename Frame , typename DataType >
void a_tilde (const gsl::not_null< tnsr::ii< DataType, Dim, Frame > * > result, const gsl::not_null< Scalar< DataType > * > buffer, const Scalar< DataType > &conformal_factor_squared, const tnsr::ii< DataType, Dim, Frame > &spatial_metric, const tnsr::ii< DataType, Dim, Frame > &extrinsic_curvature, const Scalar< DataType > &trace_extrinsic_curvature)
 Computes the trace-free part of the extrinsic curvature. More...
 
template<size_t Dim, typename Frame , typename DataType >
tnsr::ii< DataType, Dim, Frame > a_tilde (const Scalar< DataType > &conformal_factor_squared, const tnsr::ii< DataType, Dim, Frame > &spatial_metric, const tnsr::ii< DataType, Dim, Frame > &extrinsic_curvature, const Scalar< DataType > &trace_extrinsic_curvature)
 Computes the trace-free part of the extrinsic curvature. More...
 
template<size_t Dim, typename Frame , typename DataType >
void conformal_christoffel_second_kind (const gsl::not_null< tnsr::Ijj< DataType, Dim, Frame > * > result, const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::ijj< DataType, Dim, Frame > &field_d)
 Computes the conformal spatial christoffel symbols of the second kind. More...
 
template<size_t Dim, typename Frame , typename DataType >
tnsr::Ijj< DataType, Dim, Frame > conformal_christoffel_second_kind (const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::ijj< DataType, Dim, Frame > &field_d)
 Computes the conformal spatial christoffel symbols of the second kind. More...
 
template<size_t Dim, typename Frame , typename DataType >
void christoffel_second_kind (const gsl::not_null< tnsr::Ijj< DataType, Dim, Frame > * > result, const tnsr::ii< DataType, Dim, Frame > &conformal_spatial_metric, const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::i< DataType, Dim, Frame > &field_p, const tnsr::Ijj< DataType, Dim, Frame > &conformal_christoffel_second_kind)
 Computes the spatial christoffel symbols of the second kind. More...
 
template<size_t Dim, typename Frame , typename DataType >
tnsr::Ijj< DataType, Dim, Frame > christoffel_second_kind (const tnsr::ii< DataType, Dim, Frame > &conformal_spatial_metric, const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::i< DataType, Dim, Frame > &field_p, const tnsr::Ijj< DataType, Dim, Frame > &conformal_christoffel_second_kind)
 Computes the spatial christoffel symbols of the second kind. More...
 
template<size_t Dim, typename Frame , typename DataType >
void contracted_conformal_christoffel_second_kind (const gsl::not_null< tnsr::I< DataType, Dim, Frame > * > result, const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::Ijj< DataType, Dim, Frame > &conformal_christoffel_second_kind)
 Computes the contraction of the conformal spatial Christoffel symbols of the second kind. More...
 
template<size_t Dim, typename Frame , typename DataType >
tnsr::I< DataType, Dim, Frame > contracted_conformal_christoffel_second_kind (const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::Ijj< DataType, Dim, Frame > &conformal_christoffel_second_kind)
 Computes the contraction of the conformal spatial Christoffel symbols of the second kind. More...
 
template<size_t Dim, typename Frame , typename DataType >
void deriv_conformal_christoffel_second_kind (const gsl::not_null< tnsr::iJkk< DataType, Dim, Frame > * > result, const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::ijj< DataType, Dim, Frame > &field_d, const tnsr::ijkk< DataType, Dim, Frame > &d_field_d, const tnsr::iJJ< DataType, Dim, Frame > &field_d_up)
 Computes the spatial derivative of the conformal spatial christoffel symbols of the second kind. More...
 
template<size_t Dim, typename Frame , typename DataType >
tnsr::iJkk< DataType, Dim, Frame > deriv_conformal_christoffel_second_kind (const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::ijj< DataType, Dim, Frame > &field_d, const tnsr::ijkk< DataType, Dim, Frame > &d_field_d, const tnsr::iJJ< DataType, Dim, Frame > &field_d_up)
 Computes the spatial derivative of the conformal spatial christoffel symbols of the second kind. More...
 
template<size_t Dim, typename Frame , typename DataType >
void deriv_contracted_conformal_christoffel_second_kind (const gsl::not_null< tnsr::iJ< DataType, Dim, Frame > * > result, const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::iJJ< DataType, Dim, Frame > &field_d_up, const tnsr::Ijj< DataType, Dim, Frame > &conformal_christoffel_second_kind, const tnsr::iJkk< DataType, Dim, Frame > &d_conformal_christoffel_second_kind)
 Computes the spatial derivative of the contraction of the conformal spatial Christoffel symbols of the second kind. More...
 
template<size_t Dim, typename Frame , typename DataType >
tnsr::iJ< DataType, Dim, Frame > deriv_contracted_conformal_christoffel_second_kind (const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::iJJ< DataType, Dim, Frame > &field_d_up, const tnsr::Ijj< DataType, Dim, Frame > &conformal_christoffel_second_kind, const tnsr::iJkk< DataType, Dim, Frame > &d_conformal_christoffel_second_kind)
 Computes the spatial derivative of the contraction of the conformal spatial Christoffel symbols of the second kind. More...
 
template<size_t Dim, typename Frame , typename DataType >
void grad_grad_lapse (const gsl::not_null< tnsr::ij< DataType, Dim, Frame > * > result, const Scalar< DataType > &lapse, const tnsr::Ijj< DataType, Dim, Frame > &christoffel_second_kind, const tnsr::i< DataType, Dim, Frame > &field_a, const tnsr::ij< DataType, Dim, Frame > &d_field_a)
 Computes the gradient of the gradient of the lapse. More...
 
template<size_t Dim, typename Frame , typename DataType >
tnsr::ij< DataType, Dim, Frame > grad_grad_lapse (const Scalar< DataType > &lapse, const tnsr::Ijj< DataType, Dim, Frame > &christoffel_second_kind, const tnsr::i< DataType, Dim, Frame > &field_a, const tnsr::ij< DataType, Dim, Frame > &d_field_a)
 Computes the gradient of the gradient of the lapse. More...
 
template<size_t Dim, typename Frame , typename DataType >
void divergence_lapse (const gsl::not_null< Scalar< DataType > * > result, const Scalar< DataType > &conformal_factor_squared, const tnsr::II< DataType, Dim, Frame > &inverse_conformal_metric, const tnsr::ij< DataType, Dim, Frame > &grad_grad_lapse)
 Computes the divergence of the lapse. More...
 
template<size_t Dim, typename Frame , typename DataType >
Scalar< DataType > divergence_lapse (const Scalar< DataType > &conformal_factor_squared, const tnsr::II< DataType, Dim, Frame > &inverse_conformal_metric, const tnsr::ij< DataType, Dim, Frame > &grad_grad_lapse)
 Computes the divergence of the lapse. More...
 
template<size_t Dim, typename Frame , typename DataType >
void grad_spatial_z4_constraint (const gsl::not_null< tnsr::ij< DataType, Dim, Frame > * > result, const tnsr::i< DataType, Dim, Frame > &spatial_z4_constraint, const tnsr::ii< DataType, Dim, Frame > &conformal_spatial_metric, const tnsr::Ijj< DataType, Dim, Frame > &christoffel_second_kind, const tnsr::ijj< DataType, Dim, Frame > &field_d, const tnsr::I< DataType, Dim, Frame > &gamma_hat_minus_contracted_conformal_christoffel, const tnsr::iJ< DataType, Dim, Frame > &d_gamma_hat_minus_contracted_conformal_christoffel)
 Computes the gradient of the spatial part of the Z4 constraint. More...
 
template<size_t Dim, typename Frame , typename DataType >
tnsr::ij< DataType, Dim, Frame > grad_spatial_z4_constraint (const tnsr::i< DataType, Dim, Frame > &spatial_z4_constraint, const tnsr::ii< DataType, Dim, Frame > &conformal_spatial_metric, const tnsr::Ijj< DataType, Dim, Frame > &christoffel_second_kind, const tnsr::ijj< DataType, Dim, Frame > &field_d, const tnsr::I< DataType, Dim, Frame > &gamma_hat_minus_contracted_conformal_christoffel, const tnsr::iJ< DataType, Dim, Frame > &d_gamma_hat_minus_contracted_conformal_christoffel)
 Computes the gradient of the spatial part of the Z4 constraint. More...
 
template<size_t Dim, typename Frame , typename DataType >
void spatial_ricci_tensor (const gsl::not_null< tnsr::ii< DataType, Dim, Frame > * > result, const tnsr::Ijj< DataType, Dim, Frame > &christoffel_second_kind, const tnsr::i< DataType, Dim, Frame > &contracted_christoffel_second_kind, const tnsr::ij< DataType, Dim, Frame > &contracted_d_conformal_christoffel_difference, const tnsr::ii< DataType, Dim, Frame > &conformal_spatial_metric, const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::ijj< DataType, Dim, Frame > &field_d, const tnsr::iJJ< DataType, Dim, Frame > &field_d_up, const tnsr::I< DataType, Dim, Frame > &contracted_field_d_up, const tnsr::i< DataType, Dim, Frame > &field_p, const tnsr::ij< DataType, Dim, Frame > &d_field_p)
 Computes the spatial Ricci tensor. More...
 
template<size_t Dim, typename Frame , typename DataType >
tnsr::ii< DataType, Dim, Frame > spatial_ricci_tensor (const tnsr::Ijj< DataType, Dim, Frame > &christoffel_second_kind, const tnsr::i< DataType, Dim, Frame > &contracted_christoffel_second_kind, const tnsr::ij< DataType, Dim, Frame > &contracted_d_conformal_christoffel_difference, const tnsr::ii< DataType, Dim, Frame > &conformal_spatial_metric, const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::ijj< DataType, Dim, Frame > &field_d, const tnsr::iJJ< DataType, Dim, Frame > &field_d_up, const tnsr::I< DataType, Dim, Frame > &contracted_field_d_up, const tnsr::i< DataType, Dim, Frame > &field_p, const tnsr::ij< DataType, Dim, Frame > &d_field_p)
 Computes the spatial Ricci tensor. More...
 
template<size_t Dim, typename Frame , typename DataType >
void ricci_scalar_plus_divergence_z4_constraint (const gsl::not_null< Scalar< DataType > * > result, const Scalar< DataType > &conformal_factor_squared, const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::ii< DataType, Dim, Frame > &spatial_ricci_tensor, const tnsr::ij< DataType, Dim, Frame > &grad_spatial_z4_constraint)
 Computes the sum of the Ricci scalar and twice the divergence of the upper spatial Z4 constraint. More...
 
template<size_t Dim, typename Frame , typename DataType >
Scalar< DataType > ricci_scalar_plus_divergence_z4_constraint (const Scalar< DataType > &conformal_factor_squared, const tnsr::II< DataType, Dim, Frame > &inverse_conformal_spatial_metric, const tnsr::ii< DataType, Dim, Frame > &spatial_ricci_tensor, const tnsr::ij< DataType, Dim, Frame > &grad_spatial_z4_constraint)
 Computes the sum of the Ricci scalar and twice the divergence of the upper spatial Z4 constraint. More...
 
template<size_t Dim, typename Frame , typename DataType >
void spatial_z4_constraint (const gsl::not_null< tnsr::i< DataType, Dim, Frame > * > result, const tnsr::ii< DataType, Dim, Frame > &conformal_spatial_metric, const tnsr::I< DataType, Dim, Frame > &gamma_hat_minus_contracted_conformal_christoffel)
 Computes the spatial part of the Z4 constraint. More...
 
template<size_t Dim, typename Frame , typename DataType >
tnsr::i< DataType, Dim, Frame > spatial_z4_constraint (const tnsr::ii< DataType, Dim, Frame > &conformal_spatial_metric, const tnsr::I< DataType, Dim, Frame > &gamma_hat_minus_contracted_conformal_christoffel)
 Computes the spatial part of the Z4 constraint. More...
 
template<size_t Dim, typename Frame , typename DataType >
void upper_spatial_z4_constraint (const gsl::not_null< tnsr::I< DataType, Dim, Frame > * > result, const gsl::not_null< Scalar< DataType > * > buffer, const Scalar< DataType > &conformal_factor_squared, const tnsr::I< DataType, Dim, Frame > &gamma_hat_minus_contracted_conformal_christoffel)
 Computes the spatial part of the upper Z4 constraint. More...
 
template<size_t Dim, typename Frame , typename DataType >
tnsr::I< DataType, Dim, Frame > upper_spatial_z4_constraint (const Scalar< DataType > &conformal_factor_squared, const tnsr::I< DataType, Dim, Frame > &gamma_hat_minus_contracted_conformal_christoffel)
 Computes the spatial part of the upper Z4 constraint. More...
 

Detailed Description

Items related to evolving the first-order CCZ4 system.

Enumeration Type Documentation

◆ EvolveShift

enum class Ccz4::EvolveShift : bool
strong

Indicates whether or not to evolve the shift in a system evolved using first order CCZ4 [45].

Details

In [45] , evolving the shift corresponds to \(s = 1\) and not evolving it corresponds to \(s = 0\)

◆ SlicingConditionType

enum class Ccz4::SlicingConditionType : char
strong

Indicates which slicing condition to use in a system evolved using first order CCZ4 [45].

Details

In [45] , harmonic slicing corresponds to \(g(\alpha) = 1\) and 1 + log slicing corresponds to \(g(\alpha) = 2 / \alpha\) where \(\alpha\) is the lapse.

Function Documentation

◆ a_tilde() [1/2]

template<size_t Dim, typename Frame , typename DataType >
void Ccz4::a_tilde ( const gsl::not_null< tnsr::ii< DataType, Dim, Frame > * >  result,
const gsl::not_null< Scalar< DataType > * >  buffer,
const Scalar< DataType > &  conformal_factor_squared,
const tnsr::ii< DataType, Dim, Frame > &  spatial_metric,
const tnsr::ii< DataType, Dim, Frame > &  extrinsic_curvature,
const Scalar< DataType > &  trace_extrinsic_curvature 
)

Computes the trace-free part of the extrinsic curvature.

Details

Computes the trace-free part as:

\begin{align} \tilde A_{ij} &= \phi^2 \left(K_{ij} - \frac{1}{3} K \gamma_{ij}\right) \end{align}

where \(\phi^2\) is the square of the conformal factor defined by Ccz4::Tags::ConformalFactorSquared, \(\gamma_{ij}\) is the spatial metric defined by gr::Tags::SpatialMetric, \(K_{ij}\) is the extrinsic curvature defined by gr::Tags::ExtrinsicCurvature, and \(K\) is the trace of the extrinsic curvature defined by gr::Tags::TraceExtrinsicCurvature.

◆ a_tilde() [2/2]

template<size_t Dim, typename Frame , typename DataType >
tnsr::ii< DataType, Dim, Frame > Ccz4::a_tilde ( const Scalar< DataType > &  conformal_factor_squared,
const tnsr::ii< DataType, Dim, Frame > &  spatial_metric,
const tnsr::ii< DataType, Dim, Frame > &  extrinsic_curvature,
const Scalar< DataType > &  trace_extrinsic_curvature 
)

Computes the trace-free part of the extrinsic curvature.

Details

Computes the trace-free part as:

\begin{align} \tilde A_{ij} &= \phi^2 \left(K_{ij} - \frac{1}{3} K \gamma_{ij}\right) \end{align}

where \(\phi^2\) is the square of the conformal factor defined by Ccz4::Tags::ConformalFactorSquared, \(\gamma_{ij}\) is the spatial metric defined by gr::Tags::SpatialMetric, \(K_{ij}\) is the extrinsic curvature defined by gr::Tags::ExtrinsicCurvature, and \(K\) is the trace of the extrinsic curvature defined by gr::Tags::TraceExtrinsicCurvature.

◆ christoffel_second_kind() [1/2]

template<size_t Dim, typename Frame , typename DataType >
void Ccz4::christoffel_second_kind ( const gsl::not_null< tnsr::Ijj< DataType, Dim, Frame > * >  result,
const tnsr::ii< DataType, Dim, Frame > &  conformal_spatial_metric,
const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::i< DataType, Dim, Frame > &  field_p,
const tnsr::Ijj< DataType, Dim, Frame > &  conformal_christoffel_second_kind 
)

Computes the spatial christoffel symbols of the second kind.

Details

Computes the christoffel symbols as:

\begin{align} \Gamma^k_{ij} &= \tilde{\Gamma}^k_{ij} - \tilde{\gamma}^{kl} (\tilde{\gamma}_{jl} P_i + \tilde{\gamma}_{il} P_j - \tilde{\gamma}_{ij} P_l) \end{align}

where \(\tilde{\gamma}^{ij}\), \(\tilde{\gamma}_{ij}\), \(\tilde{\Gamma}^k_{ij}\), and \(P_i\) are the conformal spatial metric, the inverse conformal spatial metric, the conformal spatial christoffel symbols of the second kind, and the CCZ4 auxiliary variable defined by Ccz4::Tags::ConformalMetric, Ccz4::Tags::InverseConformalMetric, Ccz4::Tags::ConformalChristoffelSecondKind, and Ccz4::Tags::FieldP, respectively.

◆ christoffel_second_kind() [2/2]

template<size_t Dim, typename Frame , typename DataType >
tnsr::Ijj< DataType, Dim, Frame > Ccz4::christoffel_second_kind ( const tnsr::ii< DataType, Dim, Frame > &  conformal_spatial_metric,
const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::i< DataType, Dim, Frame > &  field_p,
const tnsr::Ijj< DataType, Dim, Frame > &  conformal_christoffel_second_kind 
)

Computes the spatial christoffel symbols of the second kind.

Details

Computes the christoffel symbols as:

\begin{align} \Gamma^k_{ij} &= \tilde{\Gamma}^k_{ij} - \tilde{\gamma}^{kl} (\tilde{\gamma}_{jl} P_i + \tilde{\gamma}_{il} P_j - \tilde{\gamma}_{ij} P_l) \end{align}

where \(\tilde{\gamma}^{ij}\), \(\tilde{\gamma}_{ij}\), \(\tilde{\Gamma}^k_{ij}\), and \(P_i\) are the conformal spatial metric, the inverse conformal spatial metric, the conformal spatial christoffel symbols of the second kind, and the CCZ4 auxiliary variable defined by Ccz4::Tags::ConformalMetric, Ccz4::Tags::InverseConformalMetric, Ccz4::Tags::ConformalChristoffelSecondKind, and Ccz4::Tags::FieldP, respectively.

◆ conformal_christoffel_second_kind() [1/2]

template<size_t Dim, typename Frame , typename DataType >
void Ccz4::conformal_christoffel_second_kind ( const gsl::not_null< tnsr::Ijj< DataType, Dim, Frame > * >  result,
const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::ijj< DataType, Dim, Frame > &  field_d 
)

Computes the conformal spatial christoffel symbols of the second kind.

Details

Computes the christoffel symbols as:

\begin{align} \tilde{\Gamma}^k_{ij} &= \tilde{\gamma}^{kl} (D_{ijl} + D_{jil} - D_{lij}) \end{align}

where \(\tilde{\gamma}^{ij}\) and \(D_{ijk}\) are the inverse conformal spatial metric and the CCZ4 auxiliary variable defined by Ccz4::Tags::InverseConformalMetric and Ccz4::Tags::FieldD, respectively.

◆ conformal_christoffel_second_kind() [2/2]

template<size_t Dim, typename Frame , typename DataType >
tnsr::Ijj< DataType, Dim, Frame > Ccz4::conformal_christoffel_second_kind ( const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::ijj< DataType, Dim, Frame > &  field_d 
)

Computes the conformal spatial christoffel symbols of the second kind.

Details

Computes the christoffel symbols as:

\begin{align} \tilde{\Gamma}^k_{ij} &= \tilde{\gamma}^{kl} (D_{ijl} + D_{jil} - D_{lij}) \end{align}

where \(\tilde{\gamma}^{ij}\) and \(D_{ijk}\) are the inverse conformal spatial metric and the CCZ4 auxiliary variable defined by Ccz4::Tags::InverseConformalMetric and Ccz4::Tags::FieldD, respectively.

◆ contracted_conformal_christoffel_second_kind() [1/2]

template<size_t Dim, typename Frame , typename DataType >
void Ccz4::contracted_conformal_christoffel_second_kind ( const gsl::not_null< tnsr::I< DataType, Dim, Frame > * >  result,
const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::Ijj< DataType, Dim, Frame > &  conformal_christoffel_second_kind 
)

Computes the contraction of the conformal spatial Christoffel symbols of the second kind.

Details

Computes the contraction as:

\begin{align} \tilde{\Gamma}^i &= \tilde{\gamma}^{jl} \tilde{\Gamma}^i_{jl} \end{align}

where \(\tilde{\gamma}^{ij}\) is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric and \(\tilde{\Gamma}^k_{ij}\) is the conformal spatial Christoffel symbols of the second kind defined by Ccz4::Tags::ConformalChristoffelSecondKind.

◆ contracted_conformal_christoffel_second_kind() [2/2]

template<size_t Dim, typename Frame , typename DataType >
tnsr::I< DataType, Dim, Frame > Ccz4::contracted_conformal_christoffel_second_kind ( const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::Ijj< DataType, Dim, Frame > &  conformal_christoffel_second_kind 
)

Computes the contraction of the conformal spatial Christoffel symbols of the second kind.

Details

Computes the contraction as:

\begin{align} \tilde{\Gamma}^i &= \tilde{\gamma}^{jl} \tilde{\Gamma}^i_{jl} \end{align}

where \(\tilde{\gamma}^{ij}\) is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric and \(\tilde{\Gamma}^k_{ij}\) is the conformal spatial Christoffel symbols of the second kind defined by Ccz4::Tags::ConformalChristoffelSecondKind.

◆ deriv_conformal_christoffel_second_kind() [1/2]

template<size_t Dim, typename Frame , typename DataType >
void Ccz4::deriv_conformal_christoffel_second_kind ( const gsl::not_null< tnsr::iJkk< DataType, Dim, Frame > * >  result,
const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::ijj< DataType, Dim, Frame > &  field_d,
const tnsr::ijkk< DataType, Dim, Frame > &  d_field_d,
const tnsr::iJJ< DataType, Dim, Frame > &  field_d_up 
)

Computes the spatial derivative of the conformal spatial christoffel symbols of the second kind.

Details

Computes the derivative as:

\begin{align} \partial_k \tilde{\Gamma}^m{}_{ij} &= -2 D_k{}^{ml} (D_{ijl} + D_{jil} - D_{lij}) + \tilde{\gamma}^{ml}(\partial_{(k} D_{i)jl} + \partial_{(k} D_{j)il} - \partial_{(k} D_{l)ij}) \end{align}

where \(\tilde{\gamma}^{ij}\), \(D_{ijk}\), \(\partial_l D_{ijk}\), and \(D_k{}^{ij}\) are the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldD, its spatial derivative, and the CCZ4 identity defined by Ccz4::Tags::FieldDUp.

◆ deriv_conformal_christoffel_second_kind() [2/2]

template<size_t Dim, typename Frame , typename DataType >
tnsr::iJkk< DataType, Dim, Frame > Ccz4::deriv_conformal_christoffel_second_kind ( const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::ijj< DataType, Dim, Frame > &  field_d,
const tnsr::ijkk< DataType, Dim, Frame > &  d_field_d,
const tnsr::iJJ< DataType, Dim, Frame > &  field_d_up 
)

Computes the spatial derivative of the conformal spatial christoffel symbols of the second kind.

Details

Computes the derivative as:

\begin{align} \partial_k \tilde{\Gamma}^m{}_{ij} &= -2 D_k{}^{ml} (D_{ijl} + D_{jil} - D_{lij}) + \tilde{\gamma}^{ml}(\partial_{(k} D_{i)jl} + \partial_{(k} D_{j)il} - \partial_{(k} D_{l)ij}) \end{align}

where \(\tilde{\gamma}^{ij}\), \(D_{ijk}\), \(\partial_l D_{ijk}\), and \(D_k{}^{ij}\) are the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldD, its spatial derivative, and the CCZ4 identity defined by Ccz4::Tags::FieldDUp.

◆ deriv_contracted_conformal_christoffel_second_kind() [1/2]

template<size_t Dim, typename Frame , typename DataType >
void Ccz4::deriv_contracted_conformal_christoffel_second_kind ( const gsl::not_null< tnsr::iJ< DataType, Dim, Frame > * >  result,
const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::iJJ< DataType, Dim, Frame > &  field_d_up,
const tnsr::Ijj< DataType, Dim, Frame > &  conformal_christoffel_second_kind,
const tnsr::iJkk< DataType, Dim, Frame > &  d_conformal_christoffel_second_kind 
)

Computes the spatial derivative of the contraction of the conformal spatial Christoffel symbols of the second kind.

Details

Computes the derivative as:

\begin{align} \partial_k \tilde{\Gamma}^i &= -2 D_k{}^{jl} \tilde{\Gamma}^i_{jl} + \tilde{\gamma}^{jl} \partial_k \tilde{\Gamma}^i_{jl} \end{align}

where \(\tilde{\gamma}^{ij}\) is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, \(D_k{}^{ij}\) is the CCZ4 identity defined by Ccz4::Tags::FieldDUp, \(\tilde{\Gamma}^k_{ij}\) is the conformal spatial Christoffel symbols of the second kind defined by Ccz4::Tags::ConformalChristoffelSecondKind, and \(\partial_k \tilde{\Gamma}^k_{ij}\) is its spatial derivative defined by Ccz4::Tags::DerivConformalChristoffelSecondKind.

◆ deriv_contracted_conformal_christoffel_second_kind() [2/2]

template<size_t Dim, typename Frame , typename DataType >
tnsr::iJ< DataType, Dim, Frame > Ccz4::deriv_contracted_conformal_christoffel_second_kind ( const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::iJJ< DataType, Dim, Frame > &  field_d_up,
const tnsr::Ijj< DataType, Dim, Frame > &  conformal_christoffel_second_kind,
const tnsr::iJkk< DataType, Dim, Frame > &  d_conformal_christoffel_second_kind 
)

Computes the spatial derivative of the contraction of the conformal spatial Christoffel symbols of the second kind.

Details

Computes the derivative as:

\begin{align} \partial_k \tilde{\Gamma}^i &= -2 D_k{}^{jl} \tilde{\Gamma}^i_{jl} + \tilde{\gamma}^{jl} \partial_k \tilde{\Gamma}^i_{jl} \end{align}

where \(\tilde{\gamma}^{ij}\) is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, \(D_k{}^{ij}\) is the CCZ4 identity defined by Ccz4::Tags::FieldDUp, \(\tilde{\Gamma}^k_{ij}\) is the conformal spatial Christoffel symbols of the second kind defined by Ccz4::Tags::ConformalChristoffelSecondKind, and \(\partial_k \tilde{\Gamma}^k_{ij}\) is its spatial derivative defined by Ccz4::Tags::DerivConformalChristoffelSecondKind.

◆ grad_grad_lapse() [1/2]

template<size_t Dim, typename Frame , typename DataType >
void Ccz4::grad_grad_lapse ( const gsl::not_null< tnsr::ij< DataType, Dim, Frame > * >  result,
const Scalar< DataType > &  lapse,
const tnsr::Ijj< DataType, Dim, Frame > &  christoffel_second_kind,
const tnsr::i< DataType, Dim, Frame > &  field_a,
const tnsr::ij< DataType, Dim, Frame > &  d_field_a 
)

Computes the gradient of the gradient of the lapse.

Details

Computes the gradient of the gradient as:

\begin{align} \nabla_i \nabla_j \alpha &= \alpha A_i A_j - \alpha \Gamma^k{}_{ij} A_k + \alpha \partial_{(i} A_{j)} \end{align}

where \(\alpha\), \(\Gamma^k{}_{ij}\), \(A_i\), and \(\partial_j A_i\) are the lapse, spatial christoffel symbols of the second kind, the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldA, and its spatial derivative, respectively.

◆ grad_grad_lapse() [2/2]

template<size_t Dim, typename Frame , typename DataType >
tnsr::ij< DataType, Dim, Frame > Ccz4::grad_grad_lapse ( const Scalar< DataType > &  lapse,
const tnsr::Ijj< DataType, Dim, Frame > &  christoffel_second_kind,
const tnsr::i< DataType, Dim, Frame > &  field_a,
const tnsr::ij< DataType, Dim, Frame > &  d_field_a 
)

Computes the gradient of the gradient of the lapse.

Details

Computes the gradient of the gradient as:

\begin{align} \nabla_i \nabla_j \alpha &= \alpha A_i A_j - \alpha \Gamma^k{}_{ij} A_k + \alpha \partial_{(i} A_{j)} \end{align}

where \(\alpha\), \(\Gamma^k{}_{ij}\), \(A_i\), and \(\partial_j A_i\) are the lapse, spatial christoffel symbols of the second kind, the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldA, and its spatial derivative, respectively.

◆ grad_spatial_z4_constraint() [1/2]

template<size_t Dim, typename Frame , typename DataType >
void Ccz4::grad_spatial_z4_constraint ( const gsl::not_null< tnsr::ij< DataType, Dim, Frame > * >  result,
const tnsr::i< DataType, Dim, Frame > &  spatial_z4_constraint,
const tnsr::ii< DataType, Dim, Frame > &  conformal_spatial_metric,
const tnsr::Ijj< DataType, Dim, Frame > &  christoffel_second_kind,
const tnsr::ijj< DataType, Dim, Frame > &  field_d,
const tnsr::I< DataType, Dim, Frame > &  gamma_hat_minus_contracted_conformal_christoffel,
const tnsr::iJ< DataType, Dim, Frame > &  d_gamma_hat_minus_contracted_conformal_christoffel 
)

Computes the gradient of the spatial part of the Z4 constraint.

Details

Computes the gradient as:

\begin{align} \nabla_i Z_j &= D_{ijl} \left(\hat{\Gamma}^l - \tilde{\Gamma}^l\right) + \frac{1}{2} \tilde{\gamma}_{jl} \left( \partial_i \hat{\Gamma}^l - \partial_i \tilde{\Gamma}^l\right) - \Gamma^l_{ij} Z_l \end{align}

where \(Z_i\) is the spatial Z4 constraint defined by Ccz4::Tags::SpatialZ4Constraint, \(\tilde{\gamma}_{ij}\) is the conformal spatial metric defined by Ccz4::Tags::ConformalMetric, \(\Gamma^k_{ij}\) is the spatial Christoffel symbols of the second kind defined by Ccz4::Tags::ChristoffelSecondKind, \(D_{ijk}\) is the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldD, \(\left(\hat{\Gamma}^i - \tilde{\Gamma}^i\right)\) is the CCZ4 temporary expression defined by Ccz4::Tags::GammaHatMinusContractedConformalChristoffel, and \(\left(\partial_i \hat{\Gamma}^j - \partial_i \tilde{\Gamma}^j\right)\) is its spatial derivative.

◆ grad_spatial_z4_constraint() [2/2]

template<size_t Dim, typename Frame , typename DataType >
tnsr::ij< DataType, Dim, Frame > Ccz4::grad_spatial_z4_constraint ( const tnsr::i< DataType, Dim, Frame > &  spatial_z4_constraint,
const tnsr::ii< DataType, Dim, Frame > &  conformal_spatial_metric,
const tnsr::Ijj< DataType, Dim, Frame > &  christoffel_second_kind,
const tnsr::ijj< DataType, Dim, Frame > &  field_d,
const tnsr::I< DataType, Dim, Frame > &  gamma_hat_minus_contracted_conformal_christoffel,
const tnsr::iJ< DataType, Dim, Frame > &  d_gamma_hat_minus_contracted_conformal_christoffel 
)

Computes the gradient of the spatial part of the Z4 constraint.

Details

Computes the gradient as:

\begin{align} \nabla_i Z_j &= D_{ijl} \left(\hat{\Gamma}^l - \tilde{\Gamma}^l\right) + \frac{1}{2} \tilde{\gamma}_{jl} \left( \partial_i \hat{\Gamma}^l - \partial_i \tilde{\Gamma}^l\right) - \Gamma^l_{ij} Z_l \end{align}

where \(Z_i\) is the spatial Z4 constraint defined by Ccz4::Tags::SpatialZ4Constraint, \(\tilde{\gamma}_{ij}\) is the conformal spatial metric defined by Ccz4::Tags::ConformalMetric, \(\Gamma^k_{ij}\) is the spatial Christoffel symbols of the second kind defined by Ccz4::Tags::ChristoffelSecondKind, \(D_{ijk}\) is the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldD, \(\left(\hat{\Gamma}^i - \tilde{\Gamma}^i\right)\) is the CCZ4 temporary expression defined by Ccz4::Tags::GammaHatMinusContractedConformalChristoffel, and \(\left(\partial_i \hat{\Gamma}^j - \partial_i \tilde{\Gamma}^j\right)\) is its spatial derivative.

◆ ricci_scalar_plus_divergence_z4_constraint() [1/2]

template<size_t Dim, typename Frame , typename DataType >
void Ccz4::ricci_scalar_plus_divergence_z4_constraint ( const gsl::not_null< Scalar< DataType > * >  result,
const Scalar< DataType > &  conformal_factor_squared,
const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::ii< DataType, Dim, Frame > &  spatial_ricci_tensor,
const tnsr::ij< DataType, Dim, Frame > &  grad_spatial_z4_constraint 
)

Computes the sum of the Ricci scalar and twice the divergence of the upper spatial Z4 constraint.

Details

Computes the expression as:

\begin{align} R + 2 \nabla_k Z^k &= \phi^2 \tilde{\gamma}^{ij} (R_{ij} + \nabla_i Z_j + \nabla_j Z_i) \end{align}

where \(R\) is the spatial Ricci scalar, \(Z^i\) is the upper spatial Z4 constraint defined by Ccz4::Tags::Z4ConstraintUp, \(phi^2\) is the square of the conformal factor defined by Ccz4::Tags::ConformalFactorSquared, \(\tilde{\gamma}^{ij}\) is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, \(R_{ij}\) is the spatial Ricci tensor defined by Ccz4::Tags::Ricci, and \(\nabla_j Z_i\) is the gradient of the spatial Z4 constraint defined by Ccz4::Tags::GradZ4Constraint.

◆ ricci_scalar_plus_divergence_z4_constraint() [2/2]

template<size_t Dim, typename Frame , typename DataType >
Scalar< DataType > Ccz4::ricci_scalar_plus_divergence_z4_constraint ( const Scalar< DataType > &  conformal_factor_squared,
const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::ii< DataType, Dim, Frame > &  spatial_ricci_tensor,
const tnsr::ij< DataType, Dim, Frame > &  grad_spatial_z4_constraint 
)

Computes the sum of the Ricci scalar and twice the divergence of the upper spatial Z4 constraint.

Details

Computes the expression as:

\begin{align} R + 2 \nabla_k Z^k &= \phi^2 \tilde{\gamma}^{ij} (R_{ij} + \nabla_i Z_j + \nabla_j Z_i) \end{align}

where \(R\) is the spatial Ricci scalar, \(Z^i\) is the upper spatial Z4 constraint defined by Ccz4::Tags::Z4ConstraintUp, \(phi^2\) is the square of the conformal factor defined by Ccz4::Tags::ConformalFactorSquared, \(\tilde{\gamma}^{ij}\) is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, \(R_{ij}\) is the spatial Ricci tensor defined by Ccz4::Tags::Ricci, and \(\nabla_j Z_i\) is the gradient of the spatial Z4 constraint defined by Ccz4::Tags::GradZ4Constraint.

◆ spatial_ricci_tensor() [1/2]

template<size_t Dim, typename Frame , typename DataType >
void Ccz4::spatial_ricci_tensor ( const gsl::not_null< tnsr::ii< DataType, Dim, Frame > * >  result,
const tnsr::Ijj< DataType, Dim, Frame > &  christoffel_second_kind,
const tnsr::i< DataType, Dim, Frame > &  contracted_christoffel_second_kind,
const tnsr::ij< DataType, Dim, Frame > &  contracted_d_conformal_christoffel_difference,
const tnsr::ii< DataType, Dim, Frame > &  conformal_spatial_metric,
const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::ijj< DataType, Dim, Frame > &  field_d,
const tnsr::iJJ< DataType, Dim, Frame > &  field_d_up,
const tnsr::I< DataType, Dim, Frame > &  contracted_field_d_up,
const tnsr::i< DataType, Dim, Frame > &  field_p,
const tnsr::ij< DataType, Dim, Frame > &  d_field_p 
)

Computes the spatial Ricci tensor.

Details

Computes the spatial Ricci tensor as:

\begin{align} R_{ij} &= \partial_m \Gamma^m_{ij} - \partial_j \Gamma^m_{im} + \Gamma^l_{ij} \Gamma^m_{lm} - \Gamma^l_{im} \Gamma^m_{lj} \end{align}

where

\begin{align} \partial_k \Gamma^m_{ij} &= \partial_k \tilde{\Gamma}^m_{ij} + 2 D_k{}^{ml} (\tilde{\gamma}_{jl} P_i + \tilde{\gamma}_{il} P_j - \tilde{\gamma}_{ij} P_l)\nonumber\\ & - 2 \tilde{\gamma}^{ml} (D_{kjl} P_i + D_{kil} P_j - D_{kij} P_l) - \tilde{\gamma}^{ml} ( \tilde{\gamma}_{jl} \partial_{(k} P_{i)} + \tilde{\gamma}_{il} \partial_{(k} P_{j)} - \tilde{\gamma}_{ij} \partial_{(k} P_{l)}) \end{align}

\(\Gamma^k_{ij}\) is the spatial christoffel symbols of the second kind defined by Ccz4::Tags::ChristoffelSecondKind, \(\partial_m \tilde{\Gamma}^k_{ij}\) is the spatial derivative of the conformal spatial christoffel symbols of the second kind defined by Ccz4::Tags::DerivConformalChristoffelSecondKind, \(\tilde{\gamma}_{ij}\) is the conformal spatial metric defined by Ccz4::Tags::ConformalMetric, \(\tilde{\gamma}^{ij}\) is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, \(D_{ijk}\) is the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldD, \(D_k{}^{ij}\) is the CCZ4 identity defined by Ccz4::Tags::FieldDUp, \(P_i\) is the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldP, and \(\partial_j P_{i}\) is its spatial derivative.

After substituting in the full expressions for \(\partial_m \Gamma^m_{ij}\) and \(\partial_j \Gamma^m_{im}\) and commuting terms with common coefficients, the full equation becomes and is implemented as:

\begin{align} R_{ij} &= \partial_m \tilde{\Gamma}^m_{ij} - \partial_j \tilde{\Gamma}^m_{im}\nonumber\\ & + 2 D_m{}^{ml} (\tilde{\gamma}_{jl} P_i + \tilde{\gamma}_{il} P_j - \tilde{\gamma}_{ij} P_l) - 2 \tilde{\gamma}^{ml} ( D_{mjl} P_i + D_{mil} P_j - D_{mij} P_l)\nonumber\\ & - 2 D_j{}^{ml} (\tilde{\gamma}_{ml} P_i + \tilde{\gamma}_{il} P_m - \tilde{\gamma}_{im} P_l) + 2 \tilde{\gamma}^{ml} ( D_{jml} P_i + D_{jil} P_m - D_{jim} P_l)\nonumber\\ & - \tilde{\gamma}^{ml} ( \tilde{\gamma}_{jl} \partial_{(m} P_{i)} + \tilde{\gamma}_{il} \partial_{(m} P_{j)} - \tilde{\gamma}_{ij} \partial_{(m} P_{l)}) + \tilde{\gamma}^{ml} ( \tilde{\gamma}_{ml} \partial_{(j} P_{i)} + \tilde{\gamma}_{il} \partial_{(j} P_{m)} - \tilde{\gamma}_{im} \partial_{(j} P_{l)})\nonumber\\ & + \Gamma^l_{ij} \Gamma^m_{lm} - \Gamma^l_{im} \Gamma^m_{lj} \end{align}

The argument contracted_christoffel_second_kind corresponds to the \(\Gamma^m_{lm}\) term, the argument contracted_d_conformal_christoffel_difference corresponds to the \(\partial_m \tilde{\Gamma}^m_{ij} - \partial_j \tilde{\Gamma}^m_{im}\) term, and the argument contracted_field_d_up corresponds to the \(D_m{}^{ml}\) term.

◆ spatial_ricci_tensor() [2/2]

template<size_t Dim, typename Frame , typename DataType >
tnsr::ii< DataType, Dim, Frame > Ccz4::spatial_ricci_tensor ( const tnsr::Ijj< DataType, Dim, Frame > &  christoffel_second_kind,
const tnsr::i< DataType, Dim, Frame > &  contracted_christoffel_second_kind,
const tnsr::ij< DataType, Dim, Frame > &  contracted_d_conformal_christoffel_difference,
const tnsr::ii< DataType, Dim, Frame > &  conformal_spatial_metric,
const tnsr::II< DataType, Dim, Frame > &  inverse_conformal_spatial_metric,
const tnsr::ijj< DataType, Dim, Frame > &  field_d,
const tnsr::iJJ< DataType, Dim, Frame > &  field_d_up,
const tnsr::I< DataType, Dim, Frame > &  contracted_field_d_up,
const tnsr::i< DataType, Dim, Frame > &  field_p,
const tnsr::ij< DataType, Dim, Frame > &  d_field_p 
)

Computes the spatial Ricci tensor.

Details

Computes the spatial Ricci tensor as:

\begin{align} R_{ij} &= \partial_m \Gamma^m_{ij} - \partial_j \Gamma^m_{im} + \Gamma^l_{ij} \Gamma^m_{lm} - \Gamma^l_{im} \Gamma^m_{lj} \end{align}

where

\begin{align} \partial_k \Gamma^m_{ij} &= \partial_k \tilde{\Gamma}^m_{ij} + 2 D_k{}^{ml} (\tilde{\gamma}_{jl} P_i + \tilde{\gamma}_{il} P_j - \tilde{\gamma}_{ij} P_l)\nonumber\\ & - 2 \tilde{\gamma}^{ml} (D_{kjl} P_i + D_{kil} P_j - D_{kij} P_l) - \tilde{\gamma}^{ml} ( \tilde{\gamma}_{jl} \partial_{(k} P_{i)} + \tilde{\gamma}_{il} \partial_{(k} P_{j)} - \tilde{\gamma}_{ij} \partial_{(k} P_{l)}) \end{align}

\(\Gamma^k_{ij}\) is the spatial christoffel symbols of the second kind defined by Ccz4::Tags::ChristoffelSecondKind, \(\partial_m \tilde{\Gamma}^k_{ij}\) is the spatial derivative of the conformal spatial christoffel symbols of the second kind defined by Ccz4::Tags::DerivConformalChristoffelSecondKind, \(\tilde{\gamma}_{ij}\) is the conformal spatial metric defined by Ccz4::Tags::ConformalMetric, \(\tilde{\gamma}^{ij}\) is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, \(D_{ijk}\) is the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldD, \(D_k{}^{ij}\) is the CCZ4 identity defined by Ccz4::Tags::FieldDUp, \(P_i\) is the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldP, and \(\partial_j P_{i}\) is its spatial derivative.

After substituting in the full expressions for \(\partial_m \Gamma^m_{ij}\) and \(\partial_j \Gamma^m_{im}\) and commuting terms with common coefficients, the full equation becomes and is implemented as:

\begin{align} R_{ij} &= \partial_m \tilde{\Gamma}^m_{ij} - \partial_j \tilde{\Gamma}^m_{im}\nonumber\\ & + 2 D_m{}^{ml} (\tilde{\gamma}_{jl} P_i + \tilde{\gamma}_{il} P_j - \tilde{\gamma}_{ij} P_l) - 2 \tilde{\gamma}^{ml} ( D_{mjl} P_i + D_{mil} P_j - D_{mij} P_l)\nonumber\\ & - 2 D_j{}^{ml} (\tilde{\gamma}_{ml} P_i + \tilde{\gamma}_{il} P_m - \tilde{\gamma}_{im} P_l) + 2 \tilde{\gamma}^{ml} ( D_{jml} P_i + D_{jil} P_m - D_{jim} P_l)\nonumber\\ & - \tilde{\gamma}^{ml} ( \tilde{\gamma}_{jl} \partial_{(m} P_{i)} + \tilde{\gamma}_{il} \partial_{(m} P_{j)} - \tilde{\gamma}_{ij} \partial_{(m} P_{l)}) + \tilde{\gamma}^{ml} ( \tilde{\gamma}_{ml} \partial_{(j} P_{i)} + \tilde{\gamma}_{il} \partial_{(j} P_{m)} - \tilde{\gamma}_{im} \partial_{(j} P_{l)})\nonumber\\ & + \Gamma^l_{ij} \Gamma^m_{lm} - \Gamma^l_{im} \Gamma^m_{lj} \end{align}

The argument contracted_christoffel_second_kind corresponds to the \(\Gamma^m_{lm}\) term, the argument contracted_d_conformal_christoffel_difference corresponds to the \(\partial_m \tilde{\Gamma}^m_{ij} - \partial_j \tilde{\Gamma}^m_{im}\) term, and the argument contracted_field_d_up corresponds to the \(D_m{}^{ml}\) term.

◆ spatial_z4_constraint() [1/2]

template<size_t Dim, typename Frame , typename DataType >
void Ccz4::spatial_z4_constraint ( const gsl::not_null< tnsr::i< DataType, Dim, Frame > * >  result,
const tnsr::ii< DataType, Dim, Frame > &  conformal_spatial_metric,
const tnsr::I< DataType, Dim, Frame > &  gamma_hat_minus_contracted_conformal_christoffel 
)

Computes the spatial part of the Z4 constraint.

Details

Computes the constraint as:

\begin{align} Z_i &= \frac{1}{2} \tilde{\gamma}_{ij} \left( \hat{\Gamma}^j - \tilde{\Gamma}^j\right) \end{align}

where \(\tilde{\gamma}_{ij}\) is the conformal spatial metric defined by Ccz4::Tags::ConformalMetric and \(\left(\hat{\Gamma}^i - \tilde{\Gamma}^i\right)\) is the CCZ4 temporary expression defined by Ccz4::Tags::GammaHatMinusContractedConformalChristoffel.

◆ spatial_z4_constraint() [2/2]

template<size_t Dim, typename Frame , typename DataType >
tnsr::i< DataType, Dim, Frame > Ccz4::spatial_z4_constraint ( const tnsr::ii< DataType, Dim, Frame > &  conformal_spatial_metric,
const tnsr::I< DataType, Dim, Frame > &  gamma_hat_minus_contracted_conformal_christoffel 
)

Computes the spatial part of the Z4 constraint.

Details

Computes the constraint as:

\begin{align} Z_i &= \frac{1}{2} \tilde{\gamma}_{ij} \left( \hat{\Gamma}^j - \tilde{\Gamma}^j\right) \end{align}

where \(\tilde{\gamma}_{ij}\) is the conformal spatial metric defined by Ccz4::Tags::ConformalMetric and \(\left(\hat{\Gamma}^i - \tilde{\Gamma}^i\right)\) is the CCZ4 temporary expression defined by Ccz4::Tags::GammaHatMinusContractedConformalChristoffel.

◆ upper_spatial_z4_constraint() [1/2]

template<size_t Dim, typename Frame , typename DataType >
void Ccz4::upper_spatial_z4_constraint ( const gsl::not_null< tnsr::I< DataType, Dim, Frame > * >  result,
const gsl::not_null< Scalar< DataType > * >  buffer,
const Scalar< DataType > &  conformal_factor_squared,
const tnsr::I< DataType, Dim, Frame > &  gamma_hat_minus_contracted_conformal_christoffel 
)

Computes the spatial part of the upper Z4 constraint.

Details

Computes the constraint as:

\begin{align} Z^i &= \frac{1}{2} \phi^2 \left( \hat{\Gamma}^i - \tilde{\Gamma}^i\right) \end{align}

where \(\phi^2 \) is the square of the conformal factor defined by Ccz4::Tags::ConformalFactorSquared and \(\left(\hat{\Gamma}^i - \tilde{\Gamma}^i\right)\) is the CCZ4 temporary expression defined by Ccz4::Tags::GammaHatMinusContractedConformalChristoffel.

◆ upper_spatial_z4_constraint() [2/2]

template<size_t Dim, typename Frame , typename DataType >
tnsr::I< DataType, Dim, Frame > Ccz4::upper_spatial_z4_constraint ( const Scalar< DataType > &  conformal_factor_squared,
const tnsr::I< DataType, Dim, Frame > &  gamma_hat_minus_contracted_conformal_christoffel 
)

Computes the spatial part of the upper Z4 constraint.

Details

Computes the constraint as:

\begin{align} Z^i &= \frac{1}{2} \phi^2 \left( \hat{\Gamma}^i - \tilde{\Gamma}^i\right) \end{align}

where \(\phi^2 \) is the square of the conformal factor defined by Ccz4::Tags::ConformalFactorSquared and \(\left(\hat{\Gamma}^i - \tilde{\Gamma}^i\right)\) is the CCZ4 temporary expression defined by Ccz4::Tags::GammaHatMinusContractedConformalChristoffel.