Relativity-Simulator

Relativistic Engine - Technical Architecture Manual

1. Core Engineering & System Design

The Relativistic Engine is written in ISO C++23. It is structured around data-oriented memory layouts, static compile-time polymorphism, deterministic execution guarantees, & parallel computation.

1.1. Design Constraints


2. Core Subsystems & Components

2.1. Static Tensor & SIMD Algebra Layer

2.2. Spacetime Metric Implementations

All metric types satisfy the SpacetimeMetric concept:

Metric Usage in SoftwareComputeEngine

The metric identifiers are those of Render::MetricId (include/relativistic/render/gpu_types.hpp). The mass used by the tracers is max(metric_mass, 1e-4) and the spin is clamped to $\pm 0.999 M$. Thresholds of $10^{-9} M$ select the exact tracer.

Id MetricId Tracer Horizon test Accretion disk
0 FlatMinkowski Schwarzschild null tracer with $M = 0$ No No
1 Schwarzschild Schwarzschild null tracer (step_schwarzschild_null_rk4) Yes Yes
2 Kerr Schwarzschild null tracer when $\lvert a \rvert \le 10^{-9} M$, otherwise trace_exact_photon with KerrMetric Yes Yes
3 KerrSchild Same selection as Kerr; the exact tracer instantiates KerrMetric Yes Yes
4 ReissnerNordstrom Schwarzschild null tracer when $\lvert Q \rvert \le 10^{-9} M$, otherwise trace_exact_photon with ReissnerNordstromMetric Yes Yes
5 KerrNewman Schwarzschild null tracer when both $a$ and $Q$ are below the threshold, otherwise trace_exact_photon with KerrNewmanMetric Yes Yes
6 SchwarzschildDeSitter Schwarzschild null tracer Yes No
7 FLRW Schwarzschild null tracer Yes No
8 MorrisThorne Schwarzschild null tracer No No
9 Alcubierre Schwarzschild null tracer No No

cosmological_lambda, wormhole_throat and warp_velocity are copied into GpuCameraPushConstants but are not evaluated by SoftwareComputeEngine. BssnGrid is not referenced by the render path: the BSSN selection resolves to Schwarzschild (see CLI_REFERENCE.md). The Vulkan shader is not covered by this table. Ray-tracing equations are given in MATHEMATICAL_FORMULATION.md.

2.3. Differential Solvers & Integrators

Runtime Use of the Integrator Selection

2.4. Post-Newtonian Multi-Body Subsystem

2.5. Relativistic Hydrodynamics (GRHD/GRMHD) & Stellar Physics

2.6. Polarized Radiative Transfer & Optics

2.7. Uncertainty Quantification Subsystem

2.8. Orchestration, Scheduling & User Interface

2.9. Rendering Back Ends

2.10. Capture Modules

2.11. Constants, Units and Expressions

2.12. Interface Support Modules