SpECTRE  v2021.12.06
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< Dim, Frame::Inertial, DataVector >, gr::Tags::InverseSpatialMetric< Dim, Frame::Inertial, DataVector >, Tags::ConstraintGamma1, Tags::ConstraintGamma2 >
 
using argument_tags = tmpl::list< Pi, Phi< Dim >, gr::Tags::Lapse< DataVector >, gr::Tags::Shift< Dim, Frame::Inertial, DataVector >, ::Tags::deriv< gr::Tags::Lapse< DataVector >, tmpl::size_t< Dim >, Frame::Inertial >, ::Tags::deriv< gr::Tags::Shift< Dim, Frame::Inertial, DataVector >, tmpl::size_t< Dim >, Frame::Inertial >, gr::Tags::InverseSpatialMetric< Dim, Frame::Inertial, DataVector >, gr::Tags::TraceSpatialChristoffelSecondKind< Dim, Frame::Inertial, DataVector >, gr::Tags::TraceExtrinsicCurvature< DataVector >, Tags::ConstraintGamma1, Tags::ConstraintGamma2 >
 

Static Public Member Functions

static void apply (gsl::not_null< Scalar< DataVector > * > dt_pi, gsl::not_null< tnsr::i< DataVector, Dim, Frame::Inertial > * > dt_phi, gsl::not_null< Scalar< DataVector > * > dt_psi, 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_pi, const tnsr::ij< DataVector, Dim > &d_phi, const tnsr::i< DataVector, Dim > &d_psi, 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 [60] :

\begin{align} \partial_t\Psi = & (1 + \gamma_1) \beta^k \partial_k \Psi - \alpha \Pi - \gamma_1 \beta^k \Phi_k \\ \partial_t\Pi = & - \alpha \gamma^{ij}\partial_i\Phi_j + \beta^k \partial_k \Pi + \gamma_1 \gamma_2 \beta^k \partial_k \Psi + \alpha \Gamma^i - \gamma^{ij} \Phi_i \partial_j \alpha + \alpha K \Pi - \gamma_1 \gamma_2 \beta^k \Phi_k\\ \partial_t\Phi_i = & - \alpha \partial_i \Pi + \beta^k \partial_k \Phi + \gamma_2 \alpha \partial_i \Psi - \Pi \partial_i \alpha + \Phi_k \partial_i \beta^j - \gamma_2 \alpha \Phi_i\\ \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 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: