use std::path::Path; use rand::rngs::SmallRng; use rand::{Rng, SeedableRng}; use crate::system::grid::{Position, VectorStorage}; use crate::system::model::DLASystem; use crate::system::nd::{NDPosition, NDVectorStorage}; use crate::system::{GriddedPosition, Storage}; use crate::system::walker::{LocalRandomWalker, Walker}; pub fn execute, W: Walker

>(sys: &mut DLASystem, csv_path: &Path) { while sys.running { sys.update(); } sys.export_data(csv_path) .expect("Failed to write"); } pub fn initial_config(seed: u64, max_particles: usize) -> DLASystem { DLASystem::new_g( SmallRng::seed_from_u64(seed), VectorStorage::new(1600), LocalRandomWalker, 1.0, max_particles, ) } pub fn stick_probability(seed: u64, max_particles: usize, stick_probability: f32) -> DLASystem { DLASystem::new_g( SmallRng::seed_from_u64(seed), VectorStorage::new(1600), LocalRandomWalker, stick_probability, max_particles, ) } pub fn three_dimensional(seed: u64, max_particles: usize, stick_probability: f32) -> DLASystem, NDVectorStorage<3>, LocalRandomWalker> { DLASystem::new_g( SmallRng::seed_from_u64(seed), NDVectorStorage::new(1600), LocalRandomWalker, stick_probability, max_particles, ) }