Add 3D support from the CLI
This commit is contained in:
+26
-11
@@ -6,10 +6,14 @@ mod system;
|
||||
mod example_systems;
|
||||
|
||||
use clap::Parser;
|
||||
use crate::example_systems::stick_probability;
|
||||
use crate::example_systems::{execute, stick_probability, three_dimensional};
|
||||
use crate::system::model::DLASystem;
|
||||
|
||||
#[derive(Parser, Debug)]
|
||||
struct Cli {
|
||||
#[arg(short, long, default_value_t = 2)]
|
||||
dim: u32,
|
||||
|
||||
seed: u64,
|
||||
max_particles: usize,
|
||||
stick_probability: f32,
|
||||
@@ -21,16 +25,27 @@ fn main() {
|
||||
|
||||
println!("Running: {:?}", cli);
|
||||
|
||||
let mut sys = stick_probability(
|
||||
cli.seed,
|
||||
cli.max_particles,
|
||||
cli.stick_probability
|
||||
);
|
||||
match cli.dim {
|
||||
2 => {
|
||||
let mut sys = stick_probability(
|
||||
cli.seed,
|
||||
cli.max_particles,
|
||||
cli.stick_probability,
|
||||
);
|
||||
|
||||
while sys.running {
|
||||
sys.update();
|
||||
execute(&mut sys, &cli.csv_path);
|
||||
},
|
||||
|
||||
3 => {
|
||||
let mut sys = three_dimensional(
|
||||
cli.seed,
|
||||
cli.max_particles,
|
||||
cli.stick_probability,
|
||||
);
|
||||
|
||||
execute(&mut sys, &cli.csv_path);
|
||||
},
|
||||
|
||||
n => panic!("Model not compiled with {n} dimensional support")
|
||||
}
|
||||
|
||||
sys.export_data(&cli.csv_path)
|
||||
.expect("Failed to write");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user