SpECTRE  v2024.12.16
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
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 . 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 . More...
 
enum class  SlicingConditionType : char { Harmonic , Log }
 Indicates which slicing condition to use in a system evolved using first order CCZ4 . More...
 

Functions

template<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
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<typename DataType , size_t Dim, typename Frame >
void upper_spatial_z4_constraint (const gsl::not_null< tnsr::I< DataType, Dim, Frame > * > result, const Scalar< DataType > &half_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<typename DataType , size_t Dim, typename Frame >
tnsr::I< DataType, Dim, Frame > upper_spatial_z4_constraint (const Scalar< DataType > &half_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 .

Details

In , 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 .

Details

In , harmonic slicing corresponds to g(α)=1 and 1 + log slicing corresponds to g(α)=2/α where α is the lapse.

Function Documentation

◆ a_tilde() [1/2]

template<typename DataType , size_t Dim, typename Frame >
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:

(1)A~ij=ϕ2(Kij13Kγij)

where ϕ2 is the square of the conformal factor defined by Ccz4::Tags::ConformalFactorSquared, γij is the spatial metric defined by gr::Tags::SpatialMetric, Kij 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<typename DataType , size_t Dim, typename Frame >
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:

(2)A~ij=ϕ2(Kij13Kγij)

where ϕ2 is the square of the conformal factor defined by Ccz4::Tags::ConformalFactorSquared, γij is the spatial metric defined by gr::Tags::SpatialMetric, Kij 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<typename DataType , size_t Dim, typename Frame >
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:

(3)Γijk=Γ~ijkγ~kl(γ~jlPi+γ~ilPjγ~ijPl)

where γ~ij, γ~ij, Γ~ijk, and Pi 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<typename DataType , size_t Dim, typename Frame >
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:

(4)Γijk=Γ~ijkγ~kl(γ~jlPi+γ~ilPjγ~ijPl)

where γ~ij, γ~ij, Γ~ijk, and Pi 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<typename DataType , size_t Dim, typename Frame >
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:

(5)Γ~ijk=γ~kl(Dijl+DjilDlij)

where γ~ij and Dijk 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<typename DataType , size_t Dim, typename Frame >
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:

(6)Γ~ijk=γ~kl(Dijl+DjilDlij)

where γ~ij and Dijk 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<typename DataType , size_t Dim, typename Frame >
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:

(7)Γ~i=γ~jlΓ~jli

where γ~ij is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric and Γ~ijk is the conformal spatial Christoffel symbols of the second kind defined by Ccz4::Tags::ConformalChristoffelSecondKind.

◆ contracted_conformal_christoffel_second_kind() [2/2]

template<typename DataType , size_t Dim, typename Frame >
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:

(8)Γ~i=γ~jlΓ~jli

where γ~ij is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric and Γ~ijk is the conformal spatial Christoffel symbols of the second kind defined by Ccz4::Tags::ConformalChristoffelSecondKind.

◆ deriv_conformal_christoffel_second_kind() [1/2]

template<typename DataType , size_t Dim, typename Frame >
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:

(9)kΓ~mij=2Dkml(Dijl+DjilDlij)+γ~ml((kDi)jl+(kDj)il(kDl)ij)

where γ~ij, Dijk, lDijk, and Dkij 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<typename DataType , size_t Dim, typename Frame >
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:

(10)kΓ~mij=2Dkml(Dijl+DjilDlij)+γ~ml((kDi)jl+(kDj)il(kDl)ij)

where γ~ij, Dijk, lDijk, and Dkij 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<typename DataType , size_t Dim, typename Frame >
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:

(11)kΓ~i=2DkjlΓ~jli+γ~jlkΓ~jli

where γ~ij is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, Dkij is the CCZ4 identity defined by Ccz4::Tags::FieldDUp, Γ~ijk is the conformal spatial Christoffel symbols of the second kind defined by Ccz4::Tags::ConformalChristoffelSecondKind, and kΓ~ijk is its spatial derivative defined by Ccz4::Tags::DerivConformalChristoffelSecondKind.

◆ deriv_contracted_conformal_christoffel_second_kind() [2/2]

template<typename DataType , size_t Dim, typename Frame >
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:

(12)kΓ~i=2DkjlΓ~jli+γ~jlkΓ~jli

where γ~ij is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, Dkij is the CCZ4 identity defined by Ccz4::Tags::FieldDUp, Γ~ijk is the conformal spatial Christoffel symbols of the second kind defined by Ccz4::Tags::ConformalChristoffelSecondKind, and kΓ~ijk is its spatial derivative defined by Ccz4::Tags::DerivConformalChristoffelSecondKind.

◆ grad_grad_lapse() [1/2]

template<typename DataType , size_t Dim, typename Frame >
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:

(13)ijα=αAiAjαΓkijAk+α(iAj)

where α, Γkij, Ai, and jAi 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<typename DataType , size_t Dim, typename Frame >
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:

(14)ijα=αAiAjαΓkijAk+α(iAj)

where α, Γkij, Ai, and jAi 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<typename DataType , size_t Dim, typename Frame >
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:

(15)iZj=Dijl(Γ^lΓ~l)+12γ~jl(iΓ^liΓ~l)ΓijlZl

where Zi is the spatial Z4 constraint defined by Ccz4::Tags::SpatialZ4Constraint, γ~ij is the conformal spatial metric defined by Ccz4::Tags::ConformalMetric, Γijk is the spatial Christoffel symbols of the second kind defined by Ccz4::Tags::ChristoffelSecondKind, Dijk is the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldD, (Γ^iΓ~i) is the CCZ4 temporary expression defined by Ccz4::Tags::GammaHatMinusContractedConformalChristoffel, and (iΓ^jiΓ~j) is its spatial derivative.

◆ grad_spatial_z4_constraint() [2/2]

template<typename DataType , size_t Dim, typename Frame >
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:

(16)iZj=Dijl(Γ^lΓ~l)+12γ~jl(iΓ^liΓ~l)ΓijlZl

where Zi is the spatial Z4 constraint defined by Ccz4::Tags::SpatialZ4Constraint, γ~ij is the conformal spatial metric defined by Ccz4::Tags::ConformalMetric, Γijk is the spatial Christoffel symbols of the second kind defined by Ccz4::Tags::ChristoffelSecondKind, Dijk is the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldD, (Γ^iΓ~i) is the CCZ4 temporary expression defined by Ccz4::Tags::GammaHatMinusContractedConformalChristoffel, and (iΓ^jiΓ~j) is its spatial derivative.

◆ ricci_scalar_plus_divergence_z4_constraint() [1/2]

template<typename DataType , size_t Dim, typename Frame >
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:

(17)R+2kZk=ϕ2γ~ij(Rij+iZj+jZi)

where R is the spatial Ricci scalar, Zi is the upper spatial Z4 constraint defined by Ccz4::Tags::Z4ConstraintUp, phi2 is the square of the conformal factor defined by Ccz4::Tags::ConformalFactorSquared, γ~ij is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, Rij is the spatial Ricci tensor defined by Ccz4::Tags::Ricci, and jZi is the gradient of the spatial Z4 constraint defined by Ccz4::Tags::GradZ4Constraint.

◆ ricci_scalar_plus_divergence_z4_constraint() [2/2]

template<typename DataType , size_t Dim, typename Frame >
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:

(18)R+2kZk=ϕ2γ~ij(Rij+iZj+jZi)

where R is the spatial Ricci scalar, Zi is the upper spatial Z4 constraint defined by Ccz4::Tags::Z4ConstraintUp, phi2 is the square of the conformal factor defined by Ccz4::Tags::ConformalFactorSquared, γ~ij is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, Rij is the spatial Ricci tensor defined by Ccz4::Tags::Ricci, and jZi is the gradient of the spatial Z4 constraint defined by Ccz4::Tags::GradZ4Constraint.

◆ spatial_ricci_tensor() [1/2]

template<typename DataType , size_t Dim, typename Frame >
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:

(19)Rij=mΓijmjΓimm+ΓijlΓlmmΓimlΓljm

where

kΓijm=kΓ~ijm+2Dkml(γ~jlPi+γ~ilPjγ~ijPl)(20)2γ~ml(DkjlPi+DkilPjDkijPl)γ~ml(γ~jl(kPi)+γ~il(kPj)γ~ij(kPl))

Γijk is the spatial christoffel symbols of the second kind defined by Ccz4::Tags::ChristoffelSecondKind, mΓ~ijk is the spatial derivative of the conformal spatial christoffel symbols of the second kind defined by Ccz4::Tags::DerivConformalChristoffelSecondKind, γ~ij is the conformal spatial metric defined by Ccz4::Tags::ConformalMetric, γ~ij is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, Dijk is the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldD, Dkij is the CCZ4 identity defined by Ccz4::Tags::FieldDUp, Pi is the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldP, and jPi is its spatial derivative.

After substituting in the full expressions for mΓijm and jΓimm and commuting terms with common coefficients, the full equation becomes and is implemented as:

Rij=mΓ~ijmjΓ~imm+2Dmml(γ~jlPi+γ~ilPjγ~ijPl)2γ~ml(DmjlPi+DmilPjDmijPl)2Djml(γ~mlPi+γ~ilPmγ~imPl)+2γ~ml(DjmlPi+DjilPmDjimPl)γ~ml(γ~jl(mPi)+γ~il(mPj)γ~ij(mPl))+γ~ml(γ~ml(jPi)+γ~il(jPm)γ~im(jPl))(21)+ΓijlΓlmmΓimlΓljm

The argument contracted_christoffel_second_kind corresponds to the Γlmm term, the argument contracted_d_conformal_christoffel_difference corresponds to the mΓ~ijmjΓ~imm term, and the argument contracted_field_d_up corresponds to the Dmml term.

◆ spatial_ricci_tensor() [2/2]

template<typename DataType , size_t Dim, typename Frame >
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:

(22)Rij=mΓijmjΓimm+ΓijlΓlmmΓimlΓljm

where

kΓijm=kΓ~ijm+2Dkml(γ~jlPi+γ~ilPjγ~ijPl)(23)2γ~ml(DkjlPi+DkilPjDkijPl)γ~ml(γ~jl(kPi)+γ~il(kPj)γ~ij(kPl))

Γijk is the spatial christoffel symbols of the second kind defined by Ccz4::Tags::ChristoffelSecondKind, mΓ~ijk is the spatial derivative of the conformal spatial christoffel symbols of the second kind defined by Ccz4::Tags::DerivConformalChristoffelSecondKind, γ~ij is the conformal spatial metric defined by Ccz4::Tags::ConformalMetric, γ~ij is the inverse conformal spatial metric defined by Ccz4::Tags::InverseConformalMetric, Dijk is the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldD, Dkij is the CCZ4 identity defined by Ccz4::Tags::FieldDUp, Pi is the CCZ4 auxiliary variable defined by Ccz4::Tags::FieldP, and jPi is its spatial derivative.

After substituting in the full expressions for mΓijm and jΓimm and commuting terms with common coefficients, the full equation becomes and is implemented as:

Rij=mΓ~ijmjΓ~imm+2Dmml(γ~jlPi+γ~ilPjγ~ijPl)2γ~ml(DmjlPi+DmilPjDmijPl)2Djml(γ~mlPi+γ~ilPmγ~imPl)+2γ~ml(DjmlPi+DjilPmDjimPl)γ~ml(γ~jl(mPi)+γ~il(mPj)γ~ij(mPl))+γ~ml(γ~ml(jPi)+γ~il(jPm)γ~im(jPl))(24)+ΓijlΓlmmΓimlΓljm

The argument contracted_christoffel_second_kind corresponds to the Γlmm term, the argument contracted_d_conformal_christoffel_difference corresponds to the mΓ~ijmjΓ~imm term, and the argument contracted_field_d_up corresponds to the Dmml term.

◆ spatial_z4_constraint() [1/2]

template<typename DataType , size_t Dim, typename Frame >
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:

(25)Zi=12γ~ij(Γ^jΓ~j)

where γ~ij is the conformal spatial metric defined by Ccz4::Tags::ConformalMetric and (Γ^iΓ~i) is the CCZ4 temporary expression defined by Ccz4::Tags::GammaHatMinusContractedConformalChristoffel.

◆ spatial_z4_constraint() [2/2]

template<typename DataType , size_t Dim, typename Frame >
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:

(26)Zi=12γ~ij(Γ^jΓ~j)

where γ~ij is the conformal spatial metric defined by Ccz4::Tags::ConformalMetric and (Γ^iΓ~i) is the CCZ4 temporary expression defined by Ccz4::Tags::GammaHatMinusContractedConformalChristoffel.

◆ upper_spatial_z4_constraint() [1/2]

template<typename DataType , size_t Dim, typename Frame >
void Ccz4::upper_spatial_z4_constraint ( const gsl::not_null< tnsr::I< DataType, Dim, Frame > * >  result,
const Scalar< DataType > &  half_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:

(27)Zi=12ϕ2(Γ^iΓ~i)

where ϕ2 is the square of the conformal factor defined by Ccz4::Tags::ConformalFactorSquared and (Γ^iΓ~i) is the CCZ4 temporary expression defined by Ccz4::Tags::GammaHatMinusContractedConformalChristoffel.

◆ upper_spatial_z4_constraint() [2/2]

template<typename DataType , size_t Dim, typename Frame >
tnsr::I< DataType, Dim, Frame > Ccz4::upper_spatial_z4_constraint ( const Scalar< DataType > &  half_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:

(28)Zi=12ϕ2(Γ^iΓ~i)

where ϕ2 is the square of the conformal factor defined by Ccz4::Tags::ConformalFactorSquared and (Γ^iΓ~i) is the CCZ4 temporary expression defined by Ccz4::Tags::GammaHatMinusContractedConformalChristoffel.