SpECTRE  v2024.04.12
CurvedScalarWave::TimeDerivative< Dim > Struct Template Reference

Compute the time derivative of the evolved variables of the first-order scalar wave system on a curved background. More...

#include <TimeDerivative.hpp>

Public Types

using temporary_tags = tmpl::list< gr::Tags::Lapse< DataVector >, gr::Tags::Shift< DataVector, Dim >, gr::Tags::InverseSpatialMetric< DataVector, Dim >, Tags::ConstraintGamma1, Tags::ConstraintGamma2 >
 
using argument_tags = tmpl::list< Tags::Pi, Tags::Phi< Dim >, gr::Tags::Lapse< DataVector >, gr::Tags::Shift< DataVector, Dim >, ::Tags::deriv< gr::Tags::Lapse< DataVector >, tmpl::size_t< Dim >, Frame::Inertial >, ::Tags::deriv< gr::Tags::Shift< DataVector, Dim >, tmpl::size_t< Dim >, Frame::Inertial >, gr::Tags::InverseSpatialMetric< DataVector, Dim >, gr::Tags::TraceSpatialChristoffelSecondKind< DataVector, Dim >, gr::Tags::TraceExtrinsicCurvature< DataVector >, Tags::ConstraintGamma1, Tags::ConstraintGamma2 >
 

Static Public Member Functions

static void apply (gsl::not_null< Scalar< DataVector > * > dt_psi, gsl::not_null< Scalar< DataVector > * > dt_pi, gsl::not_null< tnsr::i< DataVector, Dim, Frame::Inertial > * > dt_phi, gsl::not_null< Scalar< DataVector > * > result_lapse, gsl::not_null< tnsr::I< DataVector, Dim > * > result_shift, gsl::not_null< tnsr::II< DataVector, Dim > * > result_inverse_spatial_metric, gsl::not_null< Scalar< DataVector > * > result_gamma1, gsl::not_null< Scalar< DataVector > * > result_gamma2, const tnsr::i< DataVector, Dim > &d_psi, const tnsr::i< DataVector, Dim > &d_pi, const tnsr::ij< DataVector, Dim > &d_phi, const Scalar< DataVector > &pi, const tnsr::i< DataVector, Dim > &phi, const Scalar< DataVector > &lapse, const tnsr::I< DataVector, Dim > &shift, const tnsr::i< DataVector, Dim > &deriv_lapse, const tnsr::iJ< DataVector, Dim > &deriv_shift, const tnsr::II< DataVector, Dim > &upper_spatial_metric, const tnsr::I< DataVector, Dim > &trace_spatial_christoffel, const Scalar< DataVector > &trace_extrinsic_curvature, const Scalar< DataVector > &gamma1, const Scalar< DataVector > &gamma2)
 

Detailed Description

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

Compute the time derivative of the evolved variables of the first-order scalar wave system on a curved background.

The evolution equations for the first-order scalar wave system are given by [89] :

\begin{align} \partial_t\Psi = & - \alpha \Pi + \beta^k \partial_k \Psi + \gamma_1 \beta^k (\partial_k \Psi - \Phi_k) \\ \partial_t\Pi = & \alpha K \Pi + \beta^i \partial_i \Pi + \alpha \Gamma^i \Phi_i + \gamma_1 \gamma_2 \beta^i ( \partial_i \Psi - \Phi_i ) - \alpha \gamma^{ij} \partial_i\Phi_j - \gamma^{ij} \Phi_i \partial_j \alpha \\ \partial_t\Phi_i = & - \alpha \partial_i \Pi + \beta^k \partial_k \Phi_i + \gamma_2 \alpha ( \partial_i \Psi - \Phi_i ) - \Pi \partial_i \alpha + \Phi_j \partial_i \beta^j \\ \end{align}

where \(\Psi\) is the scalar field, \(\Pi\) is the conjugate momentum to \(\Psi\), \(\Phi_i=\partial_i\Psi\) is an auxiliary variable, \(\alpha\) is the lapse, \(\beta^k\) is the shift, \( \gamma_{ij} \) is the spatial metric, \( K \) is the trace of the extrinsic curvature, and \( \Gamma^i \) is the trace of the spatial Christoffel symbol of the second kind. \(\gamma_1, \gamma_2\) are constraint damping parameters.


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