Skip to main content

Crate phyz_gravity

Crate phyz_gravity 

Source
Expand description

Layered gravity solver from constant g to post-Newtonian corrections.

Implements 5 gravity layers:

  1. Constant gravity (uniform g)
  2. Poisson solver (local density fields)
  3. N-body with Barnes-Hut tree (O(N log N) far-field)
  4. Post-Newtonian corrections (1PN + 2.5PN)
  5. 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§

C
Speed of light (m/s).
G
Gravitational constant (m³ kg⁻¹ s⁻²).
G_EARTH
Standard Earth gravity (m/s²).

Traits§

GravitySolver
Trait for all gravity solvers.