SpECTRE
v2024.12.16
|
Items related to solving the sGB scalar equation. More...
Namespaces | |
namespace | OptionTags |
Tags related to solving the scalar equation in sGB gravity. | |
Classes | |
struct | FirstOrderSystem |
The scalar equation in sGB theories of gravity in the decoupled limit, assuming quasi-stationarity. See sgb for details on the explicit equation. More... | |
struct | Fluxes |
Compute the fluxes \(F^i\) for the scalar equation in sGB gravity on a spatial metric \(\gamma_{ij}\). More... | |
struct | LinearizedSources |
Add the linearised sources \(S_A\) for the scalar equation in sGB gravity on a spatial metric \(\gamma_{ij}\). More... | |
struct | Sources |
Add the sources \(S_A\) for the scalar equation in sGB gravity on a spatial metric \(\gamma_{ij}\). More... | |
Functions | |
void | curved_fluxes (gsl::not_null< tnsr::I< DataVector, 3 > * > flux_for_field, const tnsr::II< DataVector, 3 > &inv_conformal_metric, const tnsr::I< DataVector, 3 > &shift, const Scalar< DataVector > &lapse, const Scalar< DataVector > &conformal_factor, const tnsr::i< DataVector, 3 > &field_gradient) |
Compute the fluxes \(F^i=\left(\psi^{-4} \tilde{\gamma}^{ij} -\alpha^{2} \beta^i \beta^j \right) \partial_j \Psi(x)\) for the scalar equation in sGB gravity on a conformal metric \(\tilde{\gamma}_{ij}\). | |
void | face_fluxes (gsl::not_null< tnsr::I< DataVector, 3 > * > flux_for_field, const tnsr::II< DataVector, 3 > &inv_conformal_metric, const tnsr::I< DataVector, 3 > &shift, const Scalar< DataVector > &lapse, const Scalar< DataVector > &conformal_factor, const tnsr::i< DataVector, 3 > &face_normal, const Scalar< DataVector > &field) |
Compute the fluxes \(F^i=\left(\psi^{-4} \tilde{\gamma}^{ij} -\alpha^{2} \beta^i \beta^j \right) \partial_j \Psi(x)\) for the scalar equation in sGB gravity on a conformal metric \(\tilde{\gamma}_{ij}\) on a face normal. | |
void | add_curved_sources (gsl::not_null< Scalar< DataVector > * > source_for_field, const tnsr::i< DataVector, 3 > &christoffel_contracted, const tnsr::I< DataVector, 3 > &flux_for_field, const tnsr::i< DataVector, 3 > &deriv_lapse, const Scalar< DataVector > &lapse, const Scalar< DataVector > &conformal_factor, const tnsr::i< DataVector, 3 > &conformal_factor_deriv) |
Adds the source terms arising from the \(\Box \Psi\) term in the equation of motion for the scalar field: \(S=-\tilde{\Gamma}^i_{ij}F^j-F^j \alpha^{-1} \partial_j \alpha - 6F^j \psi^{-1} \partial_j \psi\). | |
void | add_GB_terms (gsl::not_null< Scalar< DataVector > * > scalar_tensor_equation, double eps2, double eps4, const Scalar< DataVector > &weyl_electric, const Scalar< DataVector > &weyl_magnetic, const Scalar< DataVector > &field) |
Add the sGB coupling term \(\mathcal{R} f'(\Psi)=2(E-B)(\epsilon_2 \Psi + \epsilon_4 \Psi^3)\). | |
void | add_linearized_GB_terms (gsl::not_null< Scalar< DataVector > * > linearized_scalar_tensor_equation, double eps2, double eps4, const Scalar< DataVector > &weyl_electric, const Scalar< DataVector > &weyl_magnetic, const Scalar< DataVector > &field, const Scalar< DataVector > &field_correction) |
Add sources arising from linearising the sGB coupling term. | |
void | scalar_momentum (gsl::not_null< Scalar< DataVector > * > result, const tnsr::i< DataVector, 3, Frame::Inertial > &deriv, const tnsr::I< DataVector, 3 > &shift, const Scalar< DataVector > &lapse) |
Compute the momentum \(\Pi\) assuming quasi-stationarity in sGB gravity. More... | |
Scalar< DataVector > | scalar_momentum (const tnsr::i< DataVector, 3, Frame::Inertial > &deriv, const tnsr::I< DataVector, 3 > &shift, const Scalar< DataVector > &lapse) |
Compute the momentum \(\Pi\) assuming quasi-stationarity in sGB gravity. More... | |
Items related to solving the sGB scalar equation.
The quasi-stationary scalar equation in sGB gravity
\begin{equation}\label{eq:sGB} -\partial_i \left[ \left( \gamma^{ij} - \alpha^{-2} \beta^i \beta^j \right) \partial_j \Psi \right] + \partial_j \Psi \left( \gamma^{ij} - \alpha^{-2} \beta^i \beta^j \right) \left( \Gamma_i + \partial_i \ln \alpha \right) = \ell^2 f' \left( \Psi \right) \mathcal{G} \end{equation}
is a nonlinear Poisson-type elliptic PDE for the scalar field \(\Psi\). To obtain this equation, one begins by considering the action:
\begin{equation} S\left[g_{ab}, \Psi \right] \equiv \int \, d^4 x \sqrt{-g} \Big[ \dfrac{R}{2 \kappa } - \dfrac{1}{2} \nabla_{a} \Psi \nabla^{a} \Psi + \ell^2 f(\Psi) \, \mathcal{G} \Big], \end{equation}
where \(\mathcal{G} \equiv R_{abcd}R^{abcd} - 4 R_{ab}R^{ab} + R^2\). Varying the action with respect to \(\Psi\), one obtains the wave-like equation
\begin{equation} \Box \Psi = - \ell^2 f'(\Psi) \mathcal{G} \end{equation}
In the spirit of quasi-stationarity, we set \(\partial_t \Psi = \partial_t^2 \Psi = \partial_t \alpha = \partial_t \beta^{i} = 0\), where \(\alpha\) and \(\beta^i\) are the lapse and shift respectively. This yields ( \(\ref{eq:sGB}\)), with \(\gamma^{ij}\) being the spatial metric, and \(\Gamma_i\) its associated contracted christoffel symbol of the second kind.
Currently, we have implemented the coupling function
\begin{equation} \ell^2 f(\Psi) = \epsilon_2 \frac{\Psi^2}{8} + \epsilon_4 \frac{\Psi^4}{16} \end{equation}
Note that the principal part of the master equation will generically turn singular at black hole horizon's for stationary initial data. Typically, this requires a boundary condition ensuring regularity of the solution. However, as detailed in [146], this is already enforced by the chosen spectral decomposition, and so instead one should impose the DoNothing boundary condition for excision surfaces within black hole apparent horizons.
As is currently implemented, one must provide numeric data corresponding to the full metric \(g_{ab}\). All of this can be generated using SolveXcts, with a glob for the volume files being specified in the SolveScalarGaussBonnet input file.
Specifically, one must ensure the following is in the provided volume file:
One must also ensure that the Background specified in the input file is the same one that was used in SolveXcts. This is checked using \(\bar{\gamma}^{ij}\).
Scalar< DataVector > sgb::scalar_momentum | ( | const tnsr::i< DataVector, 3, Frame::Inertial > & | deriv, |
const tnsr::I< DataVector, 3 > & | shift, | ||
const Scalar< DataVector > & | lapse | ||
) |
Compute the momentum \(\Pi\) assuming quasi-stationarity in sGB gravity.
This expression can be obtained by simply demanding \(\partial_t \Psi = 0\), yielding
\begin{equation} \Pi \equiv -n^{a} \partial_a = \alpha^{-1} \beta^{i} \partial_i \Psi \end{equation}
void sgb::scalar_momentum | ( | gsl::not_null< Scalar< DataVector > * > | result, |
const tnsr::i< DataVector, 3, Frame::Inertial > & | deriv, | ||
const tnsr::I< DataVector, 3 > & | shift, | ||
const Scalar< DataVector > & | lapse | ||
) |
Compute the momentum \(\Pi\) assuming quasi-stationarity in sGB gravity.
This expression can be obtained by simply demanding \(\partial_t \Psi = 0\), yielding
\begin{equation} \Pi \equiv -n^{a} \partial_a = \alpha^{-1} \beta^{i} \partial_i \Psi \end{equation}