Expand description
Layered gravity solver from constant g to post-Newtonian corrections.
Implements 5 gravity layers:
- Constant gravity (uniform g)
- Poisson solver (local density fields)
- N-body with Barnes-Hut tree (O(N log N) far-field)
- Post-Newtonian corrections (1PN + 2.5PN)
- Numerical GR (BSSN, future work)
§Example
use phyz_gravity::{GravityParticle, PostNewtonianSolver, GravitySolver};
use phyz_math::Vec3;
// Solar system: Mercury perihelion precession
let m_sun = 1.989e30; // kg
let m_mercury = 3.285e23;
let mut particles = vec![
GravityParticle::new(Vec3::zeros(), Vec3::zeros(), m_sun),
GravityParticle::new(
Vec3::new(57.9e9, 0.0, 0.0), // 57.9M km
Vec3::new(0.0, 47.4e3, 0.0), // 47.4 km/s
m_mercury,
),
];
let mut solver = PostNewtonianSolver::new(2.5); // 2.5PN order
solver.compute_forces(&mut particles);Re-exports§
pub use constant::ConstantGravity;pub use nbody::BarnesHutTree;pub use nbody::NBodySolver;pub use particle::GravityParticle;pub use pn::PostNewtonianSolver;pub use pn::orbital_elements;pub use pn::perihelion_precession_rate;pub use poisson::PoissonSolver;
Modules§
- constant
- Constant uniform gravity solver (Layer 1).
- nbody
- N-body gravity solver with Barnes-Hut tree (Layer 3).
- particle
- Gravity particle representation.
- pn
- Post-Newtonian gravity solver (Layer 4).
- poisson
- Poisson solver for density-dependent gravity (Layer 2).
Constants§
Traits§
- Gravity
Solver - Trait for all gravity solvers.