Julia Ising phase-transition simulator
A Julia Monte Carlo simulator for studying magnetisation, susceptibility, heat capacity, correlation, and finite-size effects in the Ising model.
Software compatibility
The project includes pinned Project.toml and Manifest.toml environments for Julia 1.12.7. MATLAB, Mathematica, and Python versions are not included.
Project definition
Problem statement
Near a phase transition, Ising simulations develop long correlations and slow sampling, so raw averages can underestimate uncertainty and produce size-dependent critical estimates.
Project objectives
- Implement a two-dimensional nearest-neighbour Ising lattice with periodic boundaries.
- Run Metropolis sampling with controlled thermalisation, sampling interval, and random seeds.
- Calculate energy, magnetisation, susceptibility, heat capacity, and correlation measures.
- Estimate autocorrelation and uncertainty rather than treating samples as independent.
- Compare multiple lattice sizes and finite-size indicators near the critical region.
System design
System modules
Lattice model
Defines spins, coupling, field, boundaries, energy changes, and initial states.
Monte Carlo engine
Runs Metropolis sweeps with deterministic seeds and recorded acceptance statistics.
Observable analyser
Calculates thermodynamic averages, fluctuations, correlations, and uncertainty.
Equilibration checker
Compares initial states, burn-in, traces, blocks, and autocorrelation times.
Finite-size study
Runs temperature sweeps across lattice sizes and compares peak and crossing indicators.
Methodology
System workflow
- 01Verify small lattice
Enumerated or analytical small systems check energy and probability calculations.
- 02Thermalise
Hot and cold starts are compared before measurements begin.
- 03Sweep temperature
Energy and magnetisation samples are collected across the transition region.
- 04Estimate uncertainty
Blocking or autocorrelation-aware errors are calculated.
- 05Compare sizes
Susceptibility, heat, and Binder-type indicators are studied across lattices.
Demonstration scenario
Several lattice sizes run from hot and cold starts across a temperature grid. The project shows thermalisation, autocorrelation, magnetisation loss, susceptibility and heat-capacity peaks, and how the apparent transition changes with lattice size.
Engineering
Technical architecture
- Environment
- Julia 1.12.7 with a pinned Project.toml and Manifest.toml.
- Simulation
- Typed Julia lattice structures, deterministic random-number streams, and multirun experiment scripts.
- Statistics
- Block averages, autocorrelation estimates, confidence measures, and finite-size calculations.
- Visualisation
- Makie.jl plots and optional lattice animations generated from saved results.
Testing
Evaluation
Evaluation measures
- Agreement with exact small-lattice calculations
- Energy and magnetisation convergence after thermalisation
- Autocorrelation and effective-sample-size behaviour
- Uncertainty stability under block and run choices
- Finite-size trend near the known critical region
- Runtime and memory scaling with lattice size and sweeps
System boundaries
- Requires the pinned Julia 1.12.7 environment.
- No MATLAB, Mathematica, or Python version is included.
- The study focuses on the documented classical Ising model and sampling method.
- Finite simulations illustrate phase-transition behaviour but do not reproduce the thermodynamic limit exactly.
Included
- 01Pinned Julia project and package environment
- 02Lattice, Metropolis, observable, and finite-size modules
- 03Thermalisation, magnetisation, energy, heat, and susceptibility plots
- 04Prepared simulations, seeds, reference cases, and results
- 05Complete source code in a private GitHub repository
- 06Complete project documentation with synopsis, abstract, methodology, statistical-mechanics derivations, simulation results, screenshots, and conclusion
- 07Setup and usage guide
Project record
No buyer information is collected on this page.
- Permanent project ID
- GP-PH-0Q18DF4
- Catalogued
- 22 Aug 2026
- Completed
- Pending
- Verified
- Pending
- Demonstration
- Added when ready
Handover
After purchase
- 01Payment is confirmed
The project is marked unavailable and cannot be purchased again.
- 02Repository access is granted
The buyer's submitted GitHub account receives access to the private repository.
- 03The purchase record is delivered
The certification sheet is prepared from the reviewed buyer details and sent privately by email.