Add 3D support from the CLI
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is failing

This commit is contained in:
2023-03-04 20:37:41 +00:00
parent bc4d870e74
commit 63d2bd9461
3 changed files with 39 additions and 14 deletions
+26 -11
View File
@@ -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");
}