pub struct PoissonSolver {
pub resolution: usize,
pub bounds: (Vec3, Vec3),
pub density: Vec<f64>,
pub potential: Vec<f64>,
pub max_iter: usize,
pub tolerance: f64,
}Expand description
Poisson solver for local gravity fields.
Fields§
§resolution: usizeGrid resolution (cells per dimension).
bounds: (Vec3, Vec3)Grid bounds (min, max).
density: Vec<f64>Density grid (kg/m³).
potential: Vec<f64>Potential grid Φ (m²/s²).
max_iter: usizeMax Jacobi iterations.
tolerance: f64Convergence tolerance.
Implementations§
Source§impl PoissonSolver
impl PoissonSolver
Sourcepub fn deposit_density(&mut self, particles: &[GravityParticle])
pub fn deposit_density(&mut self, particles: &[GravityParticle])
Deposit particle mass onto density grid (cloud-in-cell).
Sourcepub fn solve_poisson(&mut self)
pub fn solve_poisson(&mut self)
Solve Poisson equation using Jacobi iteration.
Trait Implementations§
Source§impl Clone for PoissonSolver
impl Clone for PoissonSolver
Source§fn clone(&self) -> PoissonSolver
fn clone(&self) -> PoissonSolver
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PoissonSolver
impl Debug for PoissonSolver
Source§impl GravitySolver for PoissonSolver
impl GravitySolver for PoissonSolver
Source§fn compute_forces(&mut self, particles: &mut [GravityParticle])
fn compute_forces(&mut self, particles: &mut [GravityParticle])
Compute gravitational forces on all particles.
Source§fn potential_energy(&self, particles: &[GravityParticle]) -> f64
fn potential_energy(&self, particles: &[GravityParticle]) -> f64
Compute gravitational potential energy of the system.
Auto Trait Implementations§
impl Freeze for PoissonSolver
impl RefUnwindSafe for PoissonSolver
impl Send for PoissonSolver
impl Sync for PoissonSolver
impl Unpin for PoissonSolver
impl UnsafeUnpin for PoissonSolver
impl UnwindSafe for PoissonSolver
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.