SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
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 = implementation defined
 
using primal_fluxes = implementation defined
 
using background_fields = implementation defined
 
using inv_metric_tag = implementation defined
 
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 >
 
using modify_boundary_data = void
 

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):

(1)Fψi=γ¯ijjψ(2)Sψ=Γ¯ijiFψj+18ψR¯+112ψ5K218ψ7A¯22πψ5ρ

for the Hamiltonian constraint,

(3)Fαψi=γ¯ijjαψ(4)Sαψ=Γ¯ijiFαψj+αψ(78ψ8A¯2+512ψ4K2+18R¯+2πψ4(ρ+2S))(5)ψ5tK+ψ5(βiD¯iK+βbackgroundiD¯iK)

for the lapse equation, and

(6)Fβij=(L¯β)ij=¯iβj+¯jβi23γ¯ij¯kβk(7)Sβi=Γ¯jkjFβikΓ¯jkiFβjk+(Fβij+(L¯βbackground)iju¯ij)γ¯jk(Fαψkαψ7Fψkψ)(8)D¯j((L¯βbackground)iju¯ij)+43αψψD¯iK+16π(αψ)ψ3Si

for the momentum constraint, with

(9)A¯ij=ψ72αψ((L¯β)ij+(L¯βbackground)iju¯ij)

and all fα=0.

Note that the symbol β in the equations above means βexcess. The full shift is βexcess+βbackground. See Xcts::Tags::ShiftBackground and Xcts::Tags::ShiftExcess for details on this split. Also note that the background shift is degenerate with u¯ so we treat the quantity (L¯βbackground)iju¯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. for a detailed study. To cure this defect one can conformally re-scale the matter source terms as ρ¯=ψnρ, S¯=ψnS and Si¯=ψnSi 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 or n=8 as suggested in .

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