SpECTRE
v2024.04.12
|
Items related to evolving the first-order scalar tensor system. More...
Namespaces | |
namespace | AnalyticData |
Holds classes implementing analytic data for the ScalarTensor system. | |
namespace | BoundaryConditions |
Boundary conditions for the combined Generalized Harmonic and CurvedScalarWave systems. | |
namespace | BoundaryCorrections |
Boundary corrections/numerical fluxes. | |
Classes | |
struct | AnalyticDataBase |
Base struct for properties common to all Scalar Tensor analytic initial data. More... | |
struct | System |
Scalar Tensor system obtained from combining the CurvedScalarWave and gh systems. More... | |
struct | TimeDerivative |
Compute the RHS terms of the evolution equations for the scalar tensor system. More... | |
Functions | |
void | add_scalar_source_to_dt_pi_scalar (gsl::not_null< Scalar< DataVector > * > dt_pi_scalar, const Scalar< DataVector > &scalar_source, const Scalar< DataVector > &lapse) |
Add in the source term to the \(\Pi\) evolved variable of the CurvedScalarWave system. More... | |
void | mass_source (gsl::not_null< Scalar< DataVector > * > scalar_source, const Scalar< DataVector > &psi, const double mass_psi) |
Computes the source term given by the mass of the scalar. More... | |
void | add_stress_energy_term_to_dt_pi (gsl::not_null< tnsr::aa< DataVector, 3_st > * > dt_pi, const tnsr::aa< DataVector, 3_st > &trace_reversed_stress_energy, const Scalar< DataVector > &lapse) |
Add in the trace-reversed stress-energy source term to the \(\Pi\) evolved variable of the gh system. More... | |
void | trace_reversed_stress_energy (gsl::not_null< tnsr::aa< DataVector, 3_st > * > stress_energy, const Scalar< DataVector > &pi_scalar, const tnsr::i< DataVector, 3_st > &phi_scalar, const Scalar< DataVector > &lapse) |
Compute the trace-reversed stress-energy tensor of the scalar field. More... | |
void | scalar_charge_integrand (const gsl::not_null< Scalar< DataVector > * > result, const tnsr::i< DataVector, 3 > &phi, const tnsr::I< DataVector, 3 > &unit_normal_vector) |
The scalar charge per unit solid angle. More... | |
Items related to evolving the first-order scalar tensor system.
Tags for the scalar tensor system.
void ScalarTensor::add_scalar_source_to_dt_pi_scalar | ( | gsl::not_null< Scalar< DataVector > * > | dt_pi_scalar, |
const Scalar< DataVector > & | scalar_source, | ||
const Scalar< DataVector > & | lapse | ||
) |
Add in the source term to the \(\Pi\) evolved variable of the CurvedScalarWave system.
The only source term in the wave equation
\[ \Box \Psi = \mathcal{S} ~, \]
is in the equation for \(\Pi\):
\[ \partial_t \Pi + \text{\{spatial derivative terms\}} = \alpha \mathcal{S} ~, \]
where \(\mathcal{S}\) is the source term (e. g. in the Klein-Gordon equation, the source term is the derivative of the scalar potential \(\mathcal{S} \equiv \partial V / \partial \Psi \).)
This function adds that contribution to the existing value of dt_pi_scalar
. The wave equation terms in the scalar equation should be computed before passing the dt_pi_scalar
to this function for updating.
dt_pi_scalar | Time derivative terms of \(\Pi\). The sourceless part should be computed before with CurvedScalarWave::TimeDerivative. |
scalar_source | Source term \(\mathcal{S}\) for the scalar equation. |
lapse | Lapse \(\alpha\). |
CurvedScalarWave::TimeDerivative
for details about the source-less part of the time derivative calculation. void ScalarTensor::add_stress_energy_term_to_dt_pi | ( | gsl::not_null< tnsr::aa< DataVector, 3_st > * > | dt_pi, |
const tnsr::aa< DataVector, 3_st > & | trace_reversed_stress_energy, | ||
const Scalar< DataVector > & | lapse | ||
) |
Add in the trace-reversed stress-energy source term to the \(\Pi\) evolved variable of the gh system.
The only stress energy source term in the Generalized Harmonic evolution equations is in the equation for \(\Pi_{a b}\):
\[ \partial_t \Pi_{ab} + \text{\{spatial derivative terms\}} = \text{\{GH source terms\}} - 16 \pi \alpha (T^{(\Psi)}_{ab} - \frac{1}{2} g_{a b} g^{cd}T^{(\Psi)}_{cd}) ~. \]
(note that this function takes as argument the trace-reversed stress-energy tensor)
This function adds that contribution to the existing value of dt_pi
. The spacetime terms in the GH equation should be computed before passing the dt_pi
to this function for updating.
dt_pi | Time derivative of the \(\Pi_{ab}\) variable in the gh system. The vacuum part should be computed before with gh::TimeDerivative |
trace_reversed_stress_energy | Trace-reversed stress energy tensor of the scalar \(T^{(\Psi), \text{TR}}_{a b} \equiv T^{(\Psi)}_{ab} - \frac{1}{2} g_{a b} g^{cd}T^{(\Psi)}_{cd} = \partial_a \Psi \partial_b \Psi \). |
lapse | Lapse \(\alpha\). |
gh::TimeDerivative
for details about the spacetime part of the time derivative calculation. void ScalarTensor::mass_source | ( | gsl::not_null< Scalar< DataVector > * > | scalar_source, |
const Scalar< DataVector > & | psi, | ||
const double | mass_psi | ||
) |
Computes the source term given by the mass of the scalar.
For a scalar field with mass parameter \( m_\Psi \), the wave equation takes the form
\[ \Box \Psi = \mathcal{S} ~, \]
where the source is given by
\[ \mathcal{S} \equiv m^2_\Psi \Psi~. \]
Here the mass parameter value is an option that needs to be specified in the input file.
scalar_source | Source term \(\mathcal{S}\) for the scalar equation. |
psi | Scalar field \(\Psi\). |
mass_psi | Mass of the scalar field \(m_\Psi\). |
ScalarTensor::Tags::ScalarMass
for details about the mass. void ScalarTensor::scalar_charge_integrand | ( | const gsl::not_null< Scalar< DataVector > * > | result, |
const tnsr::i< DataVector, 3 > & | phi, | ||
const tnsr::I< DataVector, 3 > & | unit_normal_vector | ||
) |
The scalar charge per unit solid angle.
This function calculates the integrand of:
\begin{align*} q = - \dfrac{1}{4 \pi} \oint dA \Phi_i n^{i}, \end{align*}
where \( n^{i} \) is the unit (outward) normal of the surface.
For a spherically symmetric scalar, this value will coincide with the value as extracted from the \(r^{-1}\) decay in
\[ \Psi \sim \phi_\infty + q / r + \cdots~. \]
void ScalarTensor::trace_reversed_stress_energy | ( | gsl::not_null< tnsr::aa< DataVector, 3_st > * > | stress_energy, |
const Scalar< DataVector > & | pi_scalar, | ||
const tnsr::i< DataVector, 3_st > & | phi_scalar, | ||
const Scalar< DataVector > & | lapse | ||
) |
Compute the trace-reversed stress-energy tensor of the scalar field.
The trace-reversed stress energy tensor is needed to compute the backreaction of the scalar to the spacetime evolution and is given by
\begin{align*} T^{(\Psi), \text{TR}}_{a b} &\equiv T^{(\Psi)}_{ab} - \frac{1}{2} g_{a b} g^{cd}T^{(\Psi)}_{cd} \\ &= \partial_a \Psi \partial_b \Psi ~, \end{align*}
where \(T^{(\Psi)}_{ab}\) is the standard stress-energy tensor of the scalar.
In terms of the evolved variables of the scalar,
\begin{align*} T^{(\Psi), \text{TR}}_{00} &= \alpha^2 \Pi^2 ~, \\ T^{(\Psi), \text{TR}}_{j 0} &= T^{(\Psi), \text{TR}}_{0j} = - \alpha \Pi \Phi_j ~, \\ T^{(\Psi), \text{TR}}_{ij} &= \Phi_i \Phi_j ~, \end{align*}
where \(\alpha\) is the lapse.
stress_energy | Trace-reversed stress energy tensor of the scalar \(T^{(\Psi), \text{TR}}_{a b} \equiv T^{(\Psi)}_{ab} - \frac{1}{2} g_{a b} g^{cd}T^{(\Psi)}_{cd} = \partial_a \Psi \partial_b \Psi \). |
pi_scalar | Scalar evolution variable \(\Pi\). |
phi_scalar | Scalar evolution variable \(\Phi_i\). |
lapse | Lapse \(\alpha\). |