diff --git a/src/model.rs b/src/model.rs index 677820c..9505ac9 100644 --- a/src/model.rs +++ b/src/model.rs @@ -96,8 +96,6 @@ impl Model { // Simulates `steps` # of steps #[inline] pub fn run(&mut self, steps: usize) { - let debug: bool = false; - let pb = ProgressBar::new(steps as u64); pb.set_style( ProgressStyle::default_bar() @@ -111,21 +109,15 @@ impl Model { let mut time_per_step_list: Vec = Vec::new(); let agents_num: usize = self.grids.iter().map(|grid| grid.agents.len()).sum(); - for i in 0..steps { - if debug { - println!("Starting tick for all agents...") - }; - + (0..steps).for_each(|_| { // Combine grids - let grids = &mut self.grids; - combine(grids, &self.attraction_table); + combine(&mut self.grids, &self.attraction_table); let agents_tick_time = Instant::now(); // Tick agents - let diffusivity = self.diffusivity; self.grids.par_iter_mut().for_each(|grid| { grid.tick(); - grid.diffuse(diffusivity); // Diffuse + Decay + grid.diffuse(self.diffusivity); // Diffuse + Decay }); self.save_image_data(); @@ -135,22 +127,16 @@ impl Model { time_per_agent_list.push(ms_per_agent); time_per_step_list.push(agents_tick_elapsed); - if debug { - println!( - "Finished tick for all agents. took {}ms\nTime per agent: {}ms\n", - agents_tick_elapsed, ms_per_agent - ) - }; - self.iteration += 1; - pb.set_position(i as u64); - } + pb.inc(1); + }); pb.finish(); let avg_per_step: f64 = time_per_step_list.iter().sum::() / time_per_step_list.len() as f64; let avg_per_agent: f64 = time_per_agent_list.iter().sum::() / time_per_agent_list.len() as f64; + println!( "Average time per step: {}ms\nAverage time per agent: {}ms", avg_per_step, avg_per_agent