Public Types | Static Public Attributes | List of all members
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< conformal_factor, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianAndLapse or EnabledEquations==Equations::HamiltonianLapseAndShift, lapse_times_conformal_factor, tmpl::list<> >, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianLapseAndShift, shift_excess, tmpl::list<> >> >
 
using auxiliary_fields = tmpl::flatten< tmpl::list< conformal_factor_gradient, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianAndLapse or EnabledEquations==Equations::HamiltonianLapseAndShift, lapse_times_conformal_factor_gradient, tmpl::list<> >, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianLapseAndShift, shift_strain, tmpl::list<> >> >
 
using primal_fluxes = tmpl::flatten< tmpl::list< ::Tags::Flux< conformal_factor, tmpl::size_t< 3 >, Frame::Inertial >, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianAndLapse or EnabledEquations==Equations::HamiltonianLapseAndShift, ::Tags::Flux< lapse_times_conformal_factor, tmpl::size_t< 3 >, Frame::Inertial >, tmpl::list<> >, tmpl::conditional_t< EnabledEquations==Equations::HamiltonianLapseAndShift, longitudinal_shift_excess, tmpl::list<> >> >
 
using auxiliary_fluxes = db::wrap_tags_in<::Tags::Flux, auxiliary_fields, tmpl::size_t< 3 >, Frame::Inertial >
 
using background_fields = tmpl::flatten< tmpl::list< 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::ConformalRicciScalar< DataVector >, Tags::ConformalChristoffelContracted< DataVector, 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< 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< Tags::Conformal< gr::Tags::MomentumDensity< 3, Frame::Inertial, DataVector >, 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 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, tmpl::list< elliptic::BoundaryConditions::Registrars::AnalyticSolution< FirstOrderSystem >, BoundaryConditions::Registrars::Flatness > >
 
using inv_metric_tag = tmpl::conditional_t< ConformalGeometry==Geometry::FlatCartesian, void, Tags::InverseConformalMetric< DataVector, 3, Frame::Inertial > >
 
template<typename Tag >
using magnitude_tag = tmpl::conditional_t< ConformalGeometry==Geometry::FlatCartesian, ::Tags::EuclideanMagnitude< Tag >, ::Tags::NonEuclideanMagnitude< Tag, inv_metric_tag > >
 

Static Public Attributes

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. This system introduces as auxiliary variables the conformal factor gradient \(v_i=\partial_i\psi\), the gradient of the lapse times the conformal factor \(w_i=\partial_i\left(\alpha\psi\right)\), and the symmetric shift strain \(B_{ij}=\bar{D}_{(i}\beta_{j)}\). Note that \(B_{ij}\) is the symmetrized covariant gradient of the shift vector field and analogous to the "strain" in an elasticity equation (see Elasticity::FirstOrderSystem and Xcts::Tags::ShiftStrain for details). From the strain we can compute the longitudinal operator by essentially removing its trace (see Xcts::longitudinal_operator).

When we cast the equations in first-order flux-form

\[ -\partial_i F^i_A + S_A = f_A(x) \]

(see also Poisson::FirstOrderSystem), the fluxes \(F^i_A\), sources \(S_A\) and fixed-sources \(f_A\) are:

\begin{align} F^i_{v_j} ={} &\delta^i_j \psi \\ S_{v_j} ={} &v_j \\ F^i_\psi ={} &\bar{\gamma}^{ij} v_j \\ 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_{w_j} ={} &\delta^i_j \alpha\psi \\ S_{w_j} ={} &w_j \\ F^i_{\alpha\psi} ={} &\bar{\gamma}^{ij} w_j \\ 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^i_{B_{jk}} ={} &\delta^i_{(j} \gamma_{k)l} \beta^l \\ S_{B_{jk}} ={} &B_{jk} + \bar{\Gamma}_{ijk}\beta^i \\ F^i_{\beta^j} ={} &2\left(\gamma^{ik}\gamma^{jl} - \frac{1}{3} \gamma^{ij}\gamma^{kl}\right) B_{kl} \\ S_{\beta^i} ={} &-\bar{\Gamma}^j_{jk} F^i_{\beta^k} - \bar{\Gamma}^i_{jk} F^j_{\beta^k} + \left(F^i_{\beta^j} + \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) \\ \text{and} \quad \left(\bar{L}\beta\right)^{ij} ={} &\bar{\nabla}^i \beta^j + \bar{\nabla}^j \beta^i - \frac{2}{3}\gamma^{ij}\bar{\nabla}_k\beta^k \\ ={} &2\left(\bar{\gamma}^{ik}\bar{\gamma}^{jl} - \frac{1}{3} \bar{\gamma}^{ij}\bar{\gamma}^{kl}\right) B_{kl} \end{align}

and all \(f_A=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. [10] 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 [45] or \(n=8\) as suggested in [10].

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