SpECTRE  v2024.12.16
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
gh::TimeDerivative< Dim > Struct Template Reference

Compute the RHS of the Generalized Harmonic formulation of Einstein's equations. More...

#include <TimeDerivative.hpp>

Public Types

using temporary_tags = implementation defined
 
using argument_tags = implementation defined
 

Static Public Member Functions

static void apply (gsl::not_null< tnsr::aa< DataVector, Dim > * > dt_spacetime_metric, gsl::not_null< tnsr::aa< DataVector, Dim > * > dt_pi, gsl::not_null< tnsr::iaa< DataVector, Dim > * > dt_phi, gsl::not_null< Scalar< DataVector > * > temp_gamma1, gsl::not_null< Scalar< DataVector > * > temp_gamma2, gsl::not_null< tnsr::a< DataVector, Dim > * > temp_gauge_function, gsl::not_null< tnsr::ab< DataVector, Dim > * > temp_spacetime_deriv_gauge_function, gsl::not_null< Scalar< DataVector > * > gamma1gamma2, gsl::not_null< Scalar< DataVector > * > half_half_pi_two_normals, gsl::not_null< Scalar< DataVector > * > normal_dot_gauge_constraint, gsl::not_null< Scalar< DataVector > * > gamma1_plus_1, gsl::not_null< tnsr::a< DataVector, Dim > * > pi_one_normal, gsl::not_null< tnsr::a< DataVector, Dim > * > gauge_constraint, gsl::not_null< tnsr::i< DataVector, Dim > * > half_phi_two_normals, gsl::not_null< tnsr::aa< DataVector, Dim > * > shift_dot_three_index_constraint, gsl::not_null< tnsr::aa< DataVector, Dim > * > mesh_velocity_dot_three_index_constraint, gsl::not_null< tnsr::ia< DataVector, Dim > * > phi_one_normal, gsl::not_null< tnsr::aB< DataVector, Dim > * > pi_2_up, gsl::not_null< tnsr::iaa< DataVector, Dim > * > three_index_constraint, gsl::not_null< tnsr::Iaa< DataVector, Dim > * > phi_1_up, gsl::not_null< tnsr::iaB< DataVector, Dim > * > phi_3_up, gsl::not_null< tnsr::abC< DataVector, Dim > * > christoffel_first_kind_3_up, gsl::not_null< Scalar< DataVector > * > lapse, gsl::not_null< tnsr::I< DataVector, Dim > * > shift, gsl::not_null< tnsr::II< DataVector, Dim > * > inverse_spatial_metric, gsl::not_null< Scalar< DataVector > * > det_spatial_metric, gsl::not_null< Scalar< DataVector > * > sqrt_det_spatial_metric, gsl::not_null< tnsr::AA< DataVector, Dim > * > inverse_spacetime_metric, gsl::not_null< tnsr::abb< DataVector, Dim > * > christoffel_first_kind, gsl::not_null< tnsr::Abb< DataVector, Dim > * > christoffel_second_kind, gsl::not_null< tnsr::a< DataVector, Dim > * > trace_christoffel, gsl::not_null< tnsr::A< DataVector, Dim > * > normal_spacetime_vector, const tnsr::iaa< DataVector, Dim > &d_spacetime_metric, const tnsr::iaa< DataVector, Dim > &d_pi, const tnsr::ijaa< DataVector, Dim > &d_phi, const tnsr::aa< DataVector, Dim > &spacetime_metric, const tnsr::aa< DataVector, Dim > &pi, const tnsr::iaa< DataVector, Dim > &phi, const Scalar< DataVector > &gamma0, const Scalar< DataVector > &gamma1, const Scalar< DataVector > &gamma2, const gauges::GaugeCondition &gauge_condition, const Mesh< Dim > &mesh, double time, const tnsr::I< DataVector, Dim, Frame::Inertial > &inertial_coords, const InverseJacobian< DataVector, Dim, Frame::ElementLogical, Frame::Inertial > &inverse_jacobian, const std::optional< tnsr::I< DataVector, Dim, Frame::Inertial > > &mesh_velocity)
 

Detailed Description

template<size_t Dim>
struct gh::TimeDerivative< Dim >

Compute the RHS of the Generalized Harmonic formulation of Einstein's equations.

The evolved variables are the spacetime metric gab, its spatial derivative Φiab=igab, and conjugate momentum Πab=nccgab, where na is the spacetime unit normal vector. The evolution equations are (Eqs. 35-57 of [123])

(1)tgab(1+γ1)βkkgabγ1vgiCiab=αΠabγ1βiΦiab,tΠabβkkΠab+αγkikΦiabγ1γ2βkkgabγ1γ2vgiCiab=2αgcd(γijΦicaΦjdbΠcaΠdbgefΓaceΓbdf)2α(aHb)12αncndΠcdΠabαncΠciγijΦjab+αγ0(2δc(anb)(1+γ3)gabnc)Cc+2γ4αΠabncCcγ5αncCc(CaCb12gabCdCdϵ5+2ndCdneCe+CdCd)γ1γ2βiΦiab(2)16πα(Tab12gabTcc),tΦiabβkkΦiab+αiΠabαγ2igab=12αncndΦicdΠab+αγjkncΦijcΦkab(3)αγ2Φiab,

where Ha is the gauge source function, Ca=Ha+Γa is the gauge constraint, Ciab is the 3-index constraint, and vgi is the mesh velocity. The constraint damping parameters γ0 γ1, γ2, γ3, γ4, and γ5 have units of inverse time and control the time scales on which the constraints are damped to zero.

Note
We have not coded up the constraint damping terms for γ3, γ4, and γ5. γ3 was found to be essential for evolutions of black strings by Pretorius and Lehner [121].
Here the only terms dependent on mesh velocity are constraint damping terms added to this implementation of the generalized harmonic system. Mesh-velocity corrections that are applicable to all systems are made in evolution::dg::Actions::detail::volume_terms().
Warning
When using harmonic gauge, gr::Tags::SqrtDetSpatialMetric<DataVector> and gr::Tags::SpacetimeChristoffelSecondKind<Dim, Frame::Inertial, DataVector> are not computed. In Debug mode, they are filled with with signaling NaNs.

The documentation for this struct was generated from the following file: