← Back to project catalogue
GP-PH-0Q18DF4PhysicsOpen for request

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.

  • Julia 1.12.7
  • Random
  • Statistics
  • Makie.jl

Software compatibility

Julia 1.12.7 only

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

01

Lattice model

Defines spins, coupling, field, boundaries, energy changes, and initial states.

02

Monte Carlo engine

Runs Metropolis sweeps with deterministic seeds and recorded acceptance statistics.

03

Observable analyser

Calculates thermodynamic averages, fluctuations, correlations, and uncertainty.

04

Equilibration checker

Compares initial states, burn-in, traces, blocks, and autocorrelation times.

05

Finite-size study

Runs temperature sweeps across lattice sizes and compares peak and crossing indicators.

Methodology

System workflow

  1. 01
    Verify small lattice

    Enumerated or analytical small systems check energy and probability calculations.

  2. 02
    Thermalise

    Hot and cold starts are compared before measurements begin.

  3. 03
    Sweep temperature

    Energy and magnetisation samples are collected across the transition region.

  4. 04
    Estimate uncertainty

    Blocking or autocorrelation-aware errors are calculated.

  5. 05
    Compare 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

  1. 01Pinned Julia project and package environment
  2. 02Lattice, Metropolis, observable, and finite-size modules
  3. 03Thermalisation, magnetisation, energy, heat, and susceptibility plots
  4. 04Prepared simulations, seeds, reference cases, and results
  5. 05Complete source code in a private GitHub repository
  6. 06Complete project documentation with synopsis, abstract, methodology, statistical-mechanics derivations, simulation results, screenshots, and conclusion
  7. 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

  1. 01
    Payment is confirmed

    The project is marked unavailable and cannot be purchased again.

  2. 02
    Repository access is granted

    The buyer's submitted GitHub account receives access to the private repository.

  3. 03
    The purchase record is delivered

    The certification sheet is prepared from the reviewed buyer details and sent privately by email.