Skip to main content

run_sweep_loop

Function run_sweep_loop 

Source
pub fn run_sweep_loop(
    lattice: &Lattice,
    real: &mut Realization,
    n_replicas: usize,
    n_temps: usize,
    config: &SimConfig,
    interrupted: &AtomicBool,
    on_sweep: &(dyn Fn() + Sync),
) -> Result<SweepResult, String>
Expand description

Run the full Monte Carlo loop (warmup + measurement) for one Realization.

Each sweep consists of:

  1. A full single-spin pass (sweep_mode: Metropolis or Gibbs)
  2. An optional cluster update (every cluster_update.interval sweeps)
  3. Measurement (after warmup_sweeps)
  4. Optional overlap cluster move (every overlap_cluster.interval sweeps, requires n_replicas ≥ 2)
  5. Optional parallel tempering (every pt_interval sweeps)

on_sweep is called once per sweep (useful for progress bars).