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

View File

@ -5,7 +5,7 @@
use clap::Parser; use clap::Parser;
use rand::prelude::*; use rand::prelude::*;
use crate::cli::{drive_system}; 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::cli::PCM::Balls2d;
use crate::cli::output::write; use crate::cli::output::write;
use crate::surface_probability_measure::{LoggerSticker, ReadOnlyVectorStorage}; use crate::surface_probability_measure::{LoggerSticker, ReadOnlyVectorStorage};
@ -57,7 +57,7 @@ fn main() {
write(&sys, cli.format, &cli.output); write(&sys, cli.format, &cli.output);
} }
PCM::Grid3KD(StickProbabilityCli { grid_size, stick_probability }) => { PCM::Grid3d(KDStickProbabilityCli { stick_probability }) => {
let mut sys = DLASystem::<_, Grid3D, _, _, _, _>::new( let mut sys = DLASystem::<_, Grid3D, _, _, _, _>::new(
SmallRng::seed_from_u64(cli.seed), SmallRng::seed_from_u64(cli.seed),
KDSpace::new(), KDSpace::new(),
@ -71,7 +71,7 @@ fn main() {
write(&sys, cli.format, &cli.output); write(&sys, cli.format, &cli.output);
} }
PCM::Grid3KDTsang(StickProbabilityCli { grid_size, stick_probability }) => { PCM::Grid3dOffAxis(KDStickProbabilityCli { stick_probability }) => {
let mut sys = DLASystem::<_, Grid3D, _, _, _, _>::new( let mut sys = DLASystem::<_, Grid3D, _, _, _, _>::new(
SmallRng::seed_from_u64(cli.seed), SmallRng::seed_from_u64(cli.seed),
KDSpace::new(), KDSpace::new(),
@ -85,20 +85,6 @@ fn main() {
write(&sys, cli.format, &cli.output); 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 }) => { PCM::Hex(StickProbabilityCli { grid_size, stick_probability }) => {
let mut sys = DLASystem::<_, HexPosition, _, _, _, _>::new( let mut sys = DLASystem::<_, HexPosition, _, _, _, _>::new(
SmallRng::seed_from_u64(cli.seed), SmallRng::seed_from_u64(cli.seed),