This example simulates gravitational wave propagation on a discrete spacetime mesh using Regge Calculus.
cargo run -p physics_examples --example gravitational_waveRegge Calculus is useful for:
- Numerical Relativity: Simulating black hole mergers, gravitational waves
- Quantum Gravity: Discrete approaches to spacetime quantization
- Mesh-Based Physics: Games, simulations with dynamic geometry
This example shows how calculate_ricci_curvature computes spacetime curvature on a simplicial mesh.
Instead of continuous curvature, Regge Calculus uses:
- Simplicial Complex: Spacetime as triangles/tetrahedra
- Edge Lengths: Metric encoded in edge lengths
- Deficit Angles: Curvature concentrated at "bones" (n-2 simplices)
For a 2D surface, curvature at a vertex is:
δ = 2π - Σ(angles at vertex)
If angles sum to less than 2π → positive curvature (like a sphere).
Metric perturbations propagate as waves:
- Curvature creates stress
- Stress changes edge lengths
- Changed lengths create new curvature
- Wave propagates
1 ─── 2
/ \ / \
6 ─ 0 ─ 3
\ / \ /
5 ─── 4
Hexagonal mesh with internal vertex 0
[t=0] Center Curvature: +0.0000 ← Flat spacetime
[t=3] Center Curvature: +0.4311 ← Wave peaks
[t=6] Center Curvature: -0.3545 ← Wave troughs
Oscillating curvature represents the gravitational wave.
- 3D mesh: Use tetrahedra for full 3D+1 simulation
- Different topologies: Try torus, sphere, or hyperbolic meshes
- Source terms: Add matter/energy sources
- Wave detection: Implement "LIGO-like" detector nodes
SimplicialComplexBuilder- Construct discrete spacetimeReggeGeometry::calculate_ricci_curvature()- Deficit anglesCausalTensor- Edge length storageBaseTopologytrait - Mesh navigation