|
SpECTRE
2021.08.02
|
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 |
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.
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.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.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].