SpECTRE  v2024.09.29
Xcts::FirstOrderSystem< EnabledEquations, ConformalGeometry, ConformalMatterScale > Struct Template Reference

The Extended Conformal Thin Sandwich (XCTS) decomposition of the Einstein constraint equations, formulated as a set of coupled first-order partial differential equations. More...

#include <FirstOrderSystem.hpp>

Public Types

using primal_fields = tmpl::flatten< tmpl::list< Tags::ConformalFactorMinusOne< DataVector >, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianAndLapse or EnabledEquations==Equations::HamiltonianLapseAndShift, Tags::LapseTimesConformalFactorMinusOne< DataVector >, tmpl::list<> >, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianLapseAndShift, Tags::ShiftExcess< DataVector, 3, Frame::Inertial >, tmpl::list<> > > >
 
using primal_fluxes = tmpl::flatten< tmpl::list< ::Tags::Flux< Tags::ConformalFactorMinusOne< DataVector >, tmpl::size_t< 3 >, Frame::Inertial >, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianAndLapse or EnabledEquations==Equations::HamiltonianLapseAndShift, ::Tags::Flux< Tags::LapseTimesConformalFactorMinusOne< DataVector >, tmpl::size_t< 3 >, Frame::Inertial >, tmpl::list<> >, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianLapseAndShift, Tags::LongitudinalShiftExcess< DataVector, 3, Frame::Inertial >, tmpl::list<> > > >
 
using background_fields = tmpl::flatten< tmpl::list< gr::Tags::Conformal< gr::Tags::EnergyDensity< DataVector >, ConformalMatterScale >, gr::Tags::TraceExtrinsicCurvature< DataVector >, tmpl::conditional_t< ConformalGeometry==Geometry::Curved, tmpl::list< Tags::InverseConformalMetric< DataVector, 3, Frame::Inertial >, Tags::ConformalRicciTensor< DataVector, 3, Frame::Inertial >, Tags::ConformalRicciScalar< DataVector >, Tags::ConformalChristoffelContracted< DataVector, 3, Frame::Inertial >, ::Tags::deriv< Tags::ConformalMetric< DataVector, 3, Frame::Inertial >, tmpl::size_t< 3 >, Frame::Inertial > >, tmpl::list<> >, tmpl::conditional_t< EnabledEquations==Equations::Hamiltonian, Tags::LongitudinalShiftMinusDtConformalMetricOverLapseSquare< DataVector >, tmpl::list<> >, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianAndLapse or EnabledEquations==Equations::HamiltonianLapseAndShift, tmpl::list< gr::Tags::Conformal< gr::Tags::StressTrace< DataVector >, ConformalMatterScale >, ::Tags::dt< gr::Tags::TraceExtrinsicCurvature< DataVector > > >, tmpl::list<> >, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianAndLapse, tmpl::list< Tags::LongitudinalShiftMinusDtConformalMetricSquare< DataVector >, Tags::ShiftDotDerivExtrinsicCurvatureTrace< DataVector > >, tmpl::list<> >, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianLapseAndShift, tmpl::list< gr::Tags::Conformal< gr::Tags::MomentumDensity< DataVector, 3 >, ConformalMatterScale >, ::Tags::deriv< gr::Tags::TraceExtrinsicCurvature< DataVector >, tmpl::size_t< 3 >, Frame::Inertial >, Tags::ShiftBackground< DataVector, 3, Frame::Inertial >, Tags::LongitudinalShiftBackgroundMinusDtConformalMetric< DataVector, 3, Frame::Inertial >, ::Tags::div< Tags::LongitudinalShiftBackgroundMinusDtConformalMetric< DataVector, 3, Frame::Inertial > >, tmpl::conditional_t< ConformalGeometry==Geometry::Curved, tmpl::list< Tags::ConformalMetric< DataVector, 3, Frame::Inertial >, Tags::ConformalChristoffelFirstKind< DataVector, 3, Frame::Inertial >, Tags::ConformalChristoffelSecondKind< DataVector, 3, Frame::Inertial > >, tmpl::list<> > >, tmpl::list<> > > >
 
using inv_metric_tag = tmpl::conditional_t< ConformalGeometry==Geometry::FlatCartesian, void, Tags::InverseConformalMetric< DataVector, 3, Frame::Inertial > >
 
using fluxes_computer = Fluxes< EnabledEquations, ConformalGeometry >
 
using sources_computer = Sources< EnabledEquations, ConformalGeometry, ConformalMatterScale >
 
using sources_computer_linearized = LinearizedSources< EnabledEquations, ConformalGeometry, ConformalMatterScale >
 
using boundary_conditions_base = elliptic::BoundaryConditions::BoundaryCondition< 3 >
 

Static Public Attributes

static constexpr Equations enabled_equations = EnabledEquations
 
static constexpr Geometry conformal_geometry = ConformalGeometry
 
static constexpr int conformal_matter_scale = ConformalMatterScale
 
static constexpr size_t volume_dim = 3
 

Detailed Description

template<Equations EnabledEquations, Geometry ConformalGeometry, int ConformalMatterScale>
struct Xcts::FirstOrderSystem< EnabledEquations, ConformalGeometry, ConformalMatterScale >

The Extended Conformal Thin Sandwich (XCTS) decomposition of the Einstein constraint equations, formulated as a set of coupled first-order partial differential equations.

See Xcts for details on the XCTS equations. The system can be formulated in terms of these fluxes and sources (see elliptic::protocols::FirstOrderSystem):

\begin{align} F^i_\psi ={} &\bar{\gamma}^{ij} \partial_j \psi \\ S_\psi ={} &-\bar{\Gamma}^i_{ij} F^j_\psi + \frac{1}{8}\psi\bar{R} + \frac{1}{12}\psi^5 K^2 - \frac{1}{8}\psi^{-7}\bar{A}^2 - 2\pi\psi^5\rho \end{align}

for the Hamiltonian constraint,

\begin{align} F^i_{\alpha\psi} ={} &\bar{\gamma}^{ij} \partial_j \alpha\psi \\ S_{\alpha\psi} ={} &-\bar{\Gamma}^i_{ij} F^j_{\alpha\psi} + \alpha\psi \left(\frac{7}{8}\psi^{-8} \bar{A}^2 + \frac{5}{12} \psi^4 K^2 + \frac{1}{8}\bar{R} + 2\pi\psi^4\left(\rho + 2S\right) \right) \\ &- \psi^5\partial_t K + \psi^5\left(\beta^i\bar{D}_i K + \beta_\mathrm{background}^i\bar{D}_i K\right) \end{align}

for the lapse equation, and

\begin{align} F^{ij}_\beta ={} &\left(\bar{L}\beta\right)^{ij} = \bar{\nabla}^i \beta^j + \bar{\nabla}^j \beta^i - \frac{2}{3} \bar{\gamma}^{ij} \bar{\nabla}_k \beta^k \\ S^i_\beta ={} &-\bar{\Gamma}^j_{jk} F^{ik}_\beta - \bar{\Gamma}^i_{jk} F^{jk}_\beta + \left(F^{ij}_\beta + \left(\bar{L}\beta_\mathrm{background}\right)^{ij} - \bar{u}^{ij}\right) \bar{\gamma}_{jk} \left(\frac{F^k_{\alpha\psi}}{\alpha\psi} - 7 \frac{F^k_\psi}{\psi}\right) \\ &- \bar{D}_j\left(\left(\bar{L}\beta_\mathrm{background}\right)^{ij} - \bar{u}^{ij}\right) + \frac{4}{3}\frac{\alpha\psi}{\psi}\bar{D}^i K + 16\pi\left(\alpha\psi\right)\psi^3 S^i \end{align}

for the momentum constraint, with

\begin{align} \bar{A}^{ij} ={} &\frac{\psi^7}{2\alpha\psi}\left( \left(\bar{L}\beta\right)^{ij} + \left(\bar{L}\beta_\mathrm{background}\right)^{ij} - \bar{u}^{ij} \right) \end{align}

and all \(f_\alpha=0\).

Note that the symbol \(\beta\) in the equations above means \(\beta_\mathrm{excess}\). The full shift is \(\beta_\mathrm{excess} + \beta_\mathrm{background}\). See Xcts::Tags::ShiftBackground and Xcts::Tags::ShiftExcess for details on this split. Also note that the background shift is degenerate with \(\bar{u}\) so we treat the quantity \(\left(\bar{L}\beta_\mathrm{background}\right)^{ij} - \bar{u}^{ij}\) as a single background field (see Xcts::Tags::LongitudinalShiftBackgroundMinusDtConformalMetric). The covariant divergence of this quantity w.r.t. the conformal metric is also a background field.

Solving a subset of equations:
This system allows you to select a subset of Xcts::Equations so you don't have to solve for all variables if some are analytically known. Specify the set of enabled equations as the first template parameter. The set of required background fields depends on your choice of equations.
Conformal background geometry:
The equations simplify significantly if the conformal metric is flat ("conformal flatness") and in Cartesian coordinates. In this case you can specify Xcts::Geometry::FlatCartesian as the second template parameter so computations are optimized for a flat background geometry and you don't have to supply geometric background fields. Else, specify Xcts::Geometry::Curved.
Conformal matter scale:
The matter source terms in the XCTS equations have the known defect that they can spoil uniqueness of the solutions. See e.g. [15] for a detailed study. To cure this defect one can conformally re-scale the matter source terms as \(\bar{\rho}=\psi^n\rho\), \(\bar{S}=\psi^n S\) and \(\bar{S^i}=\psi^n S^i\) and treat the re-scaled fields as freely-specifyable background data for the XCTS equations. You can select the ConformalMatterScale \(n\) as the third template parameter. Common choices are \(n=0\) for vacuum systems where the matter sources are irrelevant, \(n=6\) as suggested in [71] or \(n=8\) as suggested in [15].

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