summaryrefslogtreecommitdiff
path: root/src/main.rs
blob: 8984bf6e9f29f8a207e38d289883fb1a51ee021a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use particle_system::{Particle, ParticleSystem, Point, Solver, Vector};

mod midpoint;
mod particle_system;

fn main() {
    let dt = 0.01;
    let mut system = ParticleSystem {
        particles: vec![Particle::new(Point::origin(), 1.0)],
        t: 0.0,
    };

    let gravity = -9.8 * Vector::y();

    for i in 0..3 {
        println!("Iteration #{i}");
        for particle in &mut system.particles {
            particle.reset_force();
        }

        for particle in &mut system.particles {
            particle.apply_force(gravity);
        }

        system.step(dt);

        println!("{:?}", system);
    }
}