44 lines
837 B
Rust
44 lines
837 B
Rust
use std::cmp::{max, min};
|
|
use std::fs::File;
|
|
use std::io;
|
|
use std::io::Write;
|
|
use std::ops::Add;
|
|
use nd_array::Array;
|
|
use rand::prelude::*;
|
|
|
|
mod system;
|
|
|
|
use system::walker::{Walker, LocalRandomWalker};
|
|
use system::storage::{Storage, VectorStorage};
|
|
use num_integer::Integer;
|
|
use rand::rngs::SmallRng;
|
|
use crate::system::{DIM, Position};
|
|
use crate::system::model::DLASystem;
|
|
|
|
use clap::Parser;
|
|
|
|
#[derive(Parser)]
|
|
struct Cli {
|
|
seed: u64,
|
|
max_particles: usize,
|
|
stick_probability: f32,
|
|
csv_path: String,
|
|
}
|
|
|
|
fn main() {
|
|
let cli = Cli::parse();
|
|
|
|
let mut sys = DLASystem::<SmallRng, VectorStorage, LocalRandomWalker>::new(
|
|
cli.seed,
|
|
cli.max_particles,
|
|
cli.stick_probability
|
|
);
|
|
|
|
while sys.running {
|
|
sys.update();
|
|
}
|
|
|
|
sys.export_data()
|
|
.expect("Failed to write");
|
|
}
|