Change CLI slightly

This commit is contained in:
Joshua Coles 2023-03-17 19:46:29 +00:00
parent 81562d6b28
commit 38347fea89
2 changed files with 15 additions and 21 deletions

View File

@ -9,7 +9,7 @@ pub enum OutputFormat {
#[derive(Args, Debug)]
pub struct InitialCli {
pub grid_size: u32
pub grid_size: u32,
}
#[derive(Args, Debug)]
@ -18,6 +18,11 @@ pub struct StickProbabilityCli {
pub stick_probability: f32,
}
#[derive(Args, Debug)]
pub struct KDStickProbabilityCli {
pub stick_probability: f32,
}
#[derive(Args, Debug)]
pub struct BallsCli {
pub ball_radius: f32,
@ -37,12 +42,15 @@ pub struct SurfaceProbabilityMeasureCli {
pub enum PCM {
Initial(InitialCli),
StickProbability(StickProbabilityCli),
Grid3KD(StickProbabilityCli),
Grid3KDTsang(StickProbabilityCli),
Grid3(StickProbabilityCli),
Grid3d(KDStickProbabilityCli),
Grid3dOffAxis(KDStickProbabilityCli),
Hex(StickProbabilityCli),
Balls2d(BallsCli),
Balls(BallsCli),
SurfaceProbabilityMeasure(SurfaceProbabilityMeasureCli),
}

View File

@ -5,7 +5,7 @@
use clap::Parser;
use rand::prelude::*;
use crate::cli::{drive_system};
use crate::cli::cli::{StickProbabilityCli, InitialCli, BallsCli, PCM, ModelCli, SurfaceProbabilityMeasureCli};
use crate::cli::cli::{StickProbabilityCli, InitialCli, BallsCli, PCM, ModelCli, SurfaceProbabilityMeasureCli, KDStickProbabilityCli};
use crate::cli::cli::PCM::Balls2d;
use crate::cli::output::write;
use crate::surface_probability_measure::{LoggerSticker, ReadOnlyVectorStorage};
@ -57,7 +57,7 @@ fn main() {
write(&sys, cli.format, &cli.output);
}
PCM::Grid3KD(StickProbabilityCli { grid_size, stick_probability }) => {
PCM::Grid3d(KDStickProbabilityCli { stick_probability }) => {
let mut sys = DLASystem::<_, Grid3D, _, _, _, _>::new(
SmallRng::seed_from_u64(cli.seed),
KDSpace::new(),
@ -71,7 +71,7 @@ fn main() {
write(&sys, cli.format, &cli.output);
}
PCM::Grid3KDTsang(StickProbabilityCli { grid_size, stick_probability }) => {
PCM::Grid3dOffAxis(KDStickProbabilityCli { stick_probability }) => {
let mut sys = DLASystem::<_, Grid3D, _, _, _, _>::new(
SmallRng::seed_from_u64(cli.seed),
KDSpace::new(),
@ -85,20 +85,6 @@ fn main() {
write(&sys, cli.format, &cli.output);
}
PCM::Grid3(StickProbabilityCli { grid_size, stick_probability }) => {
let mut sys = DLASystem::<_, Grid3D, _, _, _, _>::new(
SmallRng::seed_from_u64(cli.seed),
VectorStorage::new(grid_size, 3),
LocalRandomWalker,
UniformSpawner,
ProbabilisticSticking::new(stick_probability).unwrap(),
cli.max_particles,
);
drive_system(&mut sys, cli.max_frames, cli.notify_every);
write(&sys, cli.format, &cli.output);
}
PCM::Hex(StickProbabilityCli { grid_size, stick_probability }) => {
let mut sys = DLASystem::<_, HexPosition, _, _, _, _>::new(
SmallRng::seed_from_u64(cli.seed),