SpECTRE  v2024.09.29
sgb Namespace Reference

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< DataVectorscalar_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...
 

Detailed Description

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 [145], 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:

  • the conformal factor \(\psi\),
  • the spatial metric \(\gamma_{ij}\),
  • the lapse \(\alpha\),
  • the shift \(\beta^i\),
  • the shift excess \(\beta_{exc}^i\),
  • the extrinsic curvature \(K^{ij}\), and
  • the inverse conformal metric \(\bar{\gamma}^{ij}\).

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}\).

Function Documentation

◆ scalar_momentum() [1/2]

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}

◆ scalar_momentum() [2/2]

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}