Change CLI slightly
This commit is contained in:
parent
81562d6b28
commit
38347fea89
@ -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),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
20
src/main.rs
20
src/main.rs
@ -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),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user