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,
    n_sweeps: usize,
    warmup_sweeps: usize,
    sweep_mode: &str,
    cluster_update_interval: Option<usize>,
    cluster_mode: &str,
    pt_interval: Option<usize>,
    houdayer_interval: Option<usize>,
    houdayer_mode: &str,
    overlap_cluster_mode: &str,
    collect_csd: bool,
    on_sweep: &(dyn Fn() + Sync),
) -> SweepResult
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 (cluster_mode: "wolff" or "sw", every cluster_update_interval sweeps)
  3. Measurement (after warmup_sweeps)
  4. Optional Houdayer ICM (every houdayer_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).