Some verbose logging if wanted (I'm running 50000 and dear god I'm bored)
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Joshua Coles 2023-03-08 16:49:33 +00:00
parent b94d001ab2
commit 183293fe7e
3 changed files with 20 additions and 6 deletions

View File

@ -53,4 +53,7 @@ pub struct ModelCli {
#[arg(value_enum, short, long)]
pub output: PathBuf,
#[arg(short, long)]
pub notify_every: Option<usize>,
}

View File

@ -8,10 +8,20 @@ use crate::system::walker::Walker;
pub mod cli;
pub mod output;
pub fn drive_system<R: Rng, P: Position, S: Storage<P>, W: Walker<P>, Sp: Spawner<P>, St: Sticker<P, S>>(sys: &mut DLASystem<R, P, S, W, Sp, St>, max_frames: Option<usize>) {
pub fn drive_system<R: Rng, P: Position, S: Storage<P>, W: Walker<P>, Sp: Spawner<P>, St: Sticker<P, S>>(
sys: &mut DLASystem<R, P, S, W, Sp, St>,
max_frames: Option<usize>,
notify_every: Option<usize>,
) {
let mut previous_n: usize = 0;
while sys.running {
sys.update();
if let Some(notify_every) = notify_every && (sys.history.len() % notify_every) == 0 && previous_n != sys.history.len() {
println!("On frame {}, deposited {} particles", sys.frame, sys.history.len());
previous_n = sys.history.len();
}
match max_frames {
Some(max_frames) if max_frames <= sys.frame => {
sys.running = false;

View File

@ -1,5 +1,6 @@
#![feature(array_zip)]
#![feature(generic_const_exprs)]
#![feature(let_chains)]
use clap::Parser;
use rand::prelude::*;
@ -35,7 +36,7 @@ fn main() {
cli.max_particles,
);
drive_system(&mut sys, cli.max_frames);
drive_system(&mut sys, cli.max_frames, cli.notify_every);
write(&sys, cli.format, &cli.output);
}
@ -49,7 +50,7 @@ fn main() {
cli.max_particles,
);
drive_system(&mut sys, cli.max_frames);
drive_system(&mut sys, cli.max_frames, cli.notify_every);
write(&sys, cli.format, &cli.output);
}
@ -63,7 +64,7 @@ fn main() {
cli.max_particles,
);
drive_system(&mut sys, cli.max_frames);
drive_system(&mut sys, cli.max_frames, cli.notify_every);
write(&sys, cli.format, &cli.output);
}
@ -77,7 +78,7 @@ fn main() {
cli.max_particles,
);
drive_system(&mut sys, cli.max_frames);
drive_system(&mut sys, cli.max_frames, cli.notify_every);
write(&sys, cli.format, &cli.output);
}
@ -91,7 +92,7 @@ fn main() {
cli.max_particles,
);
drive_system(&mut sys, cli.max_frames);
drive_system(&mut sys, cli.max_frames, cli.notify_every);
write(&sys, cli.format, &cli.output);
}
}