Related Work¶
Where mcising sits among the classical spin-model Monte Carlo codes a researcher is likely to consider. The table compares documented scope, not speed — the only performance comparison mcising publishes is the matched-physics benchmark against peapods on the performance page, regenerated from a committed script. Every cell was checked against the project's README or documentation on 2026-09-02; "not documented" means the source consulted does not say, not that the feature is absent.
Feature comparison¶
| mcising | peapods | ALPS / ALPSCore | IsingModels.jl | SpinMC.jl | |
|---|---|---|---|---|---|
| Language | Python API, Rust core (PyO3) | Python API, Rust core (PyO3) | C++ framework; Python tools (pyalps) |
Julia | Julia |
| Spin model | Ising | Ising (incl. spin glasses) | Ising, XY, Heisenberg (spinmc application) |
Ising | Classical O(3) Heisenberg |
| Lattices | square, triangular, honeycomb, cubic, chain (periodic) | periodic Bravais lattices: hypercubic in any dimension, triangular, custom neighbour offsets | XML lattice library (arbitrary graphs) | 2D square grid | arbitrary unit cells, any dimension |
| Couplings beyond nearest neighbour | named \(J_2\), \(J_3\) shells per lattice; external field \(h\) | per-bond coupling arrays (uniform, ±J, Gaussian) over custom offsets; no field documented | per-bond-type couplings in the lattice/model XML (not verified here) | not documented | general interaction matrices, further neighbours, external field |
| Update algorithms | Metropolis, Wolff, Swendsen-Wang | Metropolis, Gibbs, Wolff, Swendsen-Wang (interleaved with single-spin sweeps), replica overlap-cluster moves | local and cluster updates | Metropolis, Wolff (from the source tree) | Metropolis |
| Parallel execution | independent temperatures (Rayon), parallel tempering | parallel tempering, replicas, disorder averaging | not documented for spinmc |
not documented | parallel tempering via MPI |
| Error analysis | blocking and jackknife errors on every observable, \(\tau_\mathrm{int}\), adaptive thermalization (MSER + Sokal) | autocorrelation diagnostics, Binder cumulant | ALPSCore accumulators (binning) | not documented | BinningAnalysis.jl |
| Output | HDF5 with provenance (config, seed, version, commit), JSON summary, checkpoint/resume | .npz |
HDF5 / XML | not documented | HDF5 |
| Install | pip install mcising (wheels for Linux, macOS, Windows) |
pip install peapods |
binaries, source or Spack | Pkg.add("IsingModels") |
Pkg.add from GitHub |
| License | MIT | MIT | see repository | MIT | MIT |
| Reference | this documentation; CITATION.cff | Pei, arXiv:2602.19045 | Bauer et al., J. Stat. Mech. (2011) P05001; Gaenko et al., Comput. Phys. Commun. 213, 235 (2017) | Fernandez-de-Cossio-Diaz, Cocco & Monasson, Phys. Rev. X 13, 021003 (2023) | not documented |
How mcising differs¶
- Frustration as a first-class, tested feature. \(J_2\) and \(J_3\) are named shells with their own neighbour tables on every lattice (including the non-Bravais honeycomb), and antiferromagnetic couplings run through the same exact-enumeration and ground-state tests as the ferromagnet. The frustration tutorial reproduces the stripe phase of the \(J_1\)-\(J_2\) model with a committed script.
- Quoted uncertainties by default. Every observable of a run carries a blocking or jackknife error and an integrated autocorrelation time, and the physics page reports the measured critical temperatures of four lattices with statistical and finite-size errors against the exact values.
- Provenance in the data file. An HDF5 result reloads with its configuration, seed, execution mode, package version and git commit, and a run can be checkpointed and resumed.
- A single pip install. No C++ toolchain, XML lattice definitions or Julia environment; wheels are built for three platforms and four Python versions.
What the others offer that mcising does not: peapods covers disordered couplings, spin-glass replica moves and hypercubic lattices in any dimension; ALPS covers XY and Heisenberg spins, quantum models and arbitrary graphs; SpinMC.jl covers continuous O(3) spins with general interaction matrices and MPI-scale tempering. Wang-Landau sampling, cluster updates for antiferromagnets (via sublattice mapping) and further lattices (kagome, odd-sized triangular and honeycomb) are on mcising's post-1.0 list.