← Back to project catalogue
GP-PH-0Q18DF4PhysicsReady

Julia Ising phase-transition simulator

A completed Julia 1.12.7 Monte Carlo study of magnetic order, response functions, Binder crossings, autocorrelation, and finite-size effects in the two-dimensional Ising model.

Julia Ising phase-transition simulator project visual
GP-PH-0Q18DF4 · Physics
  • Julia 1.12.7
  • CairoMakie 0.15.13
  • JSON 1.7.1

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 continuous phase transition, finite Ising lattices develop strong fluctuations and long correlations. Raw sample counts can therefore overstate precision, and finite-size peaks do not equal the infinite-lattice critical temperature.

Project objectives

  • Implement the two-dimensional nearest-neighbour ferromagnetic Ising model with periodic boundaries.
  • Run controlled Metropolis sampling across three lattice sizes and 27 temperatures.
  • Calculate energy, absolute magnetisation, heat capacity, susceptibility, Binder cumulants, acceptance, and uncertainty.
  • Measure integrated autocorrelation time and effective samples near criticality.
  • Compare susceptibility peaks and Binder crossings with the exact critical temperature.
  • Validate the implementation against complete 2 x 2 enumeration.

Project structure

Project components

01

Lattice physics

Implements periodic neighbours, Hamiltonian energy, magnetisation, ordered and random states, and exact critical constants.

02

Monte Carlo engine

Runs checkerboard production sweeps and random-site small-lattice validation with deterministic seeds.

03

Observable analyser

Calculates thermodynamic means, fluctuation responses, Binder cumulants, block errors, autocorrelation, and effective samples.

04

Finite-size study

Compares L = 16, 32, and 48 curves, parabolic susceptibility peaks, Binder crossings, and magnetisation scaling.

05

Verification

Checks exact enumeration, physical regimes, output counts, document integrity, and repository consistency.

Methodology

Project workflow

  1. 01
    Instantiate

    Julia reads the pinned Project.toml and complete Manifest.toml dependency graph.

  2. 02
    Thermalise

    Each seeded lattice receives 700 to 1,500 sweeps before measurements begin.

  3. 03
    Measure

    The critical window retains 3,000 samples at two-sweep intervals, while outer cases retain 1,200 samples.

  4. 04
    Compare

    Three size curves produce response peaks, Binder crossings, scaling, and correlation diagnostics.

  5. 05
    Verify

    Seven test sets, exact enumeration, a repository validator, and a container smoke run check the delivery.

Demonstration scenario

The student begins with real magnetic-domain images and the Ising Hamiltonian, then compares ordered, critical, and disordered spin fields. Energy, magnetisation, response peaks, Binder crossings, autocorrelation, effective samples, exact enumeration, and finite-size scaling are explained from the retained data.

Engineering

Tools and method

Tools
The project uses Julia 1.12.7, CairoMakie 0.15.13, JSON 1.7.1 for subject analysis, simulation, and results.
Environment
Julia 1.12.7 with CairoMakie 0.15.13, JSON 1.7.1, a complete Manifest.toml, and Docker.
Physics
Classical zero-field nearest-neighbour ferromagnetic square lattice with periodic boundaries and J = kB = 1.
Statistics
Block standard errors, integrated autocorrelation time, effective samples, response moments, and finite-size calculations.
Evidence
One command regenerates 81 records, open data summaries, three spin snapshots, and fourteen PNG and SVG figure pairs.

Testing

Evaluation

Evaluation measures

  • Exact critical temperature 2.269185
  • Binder crossings 2.259243 for L16-L32 and 2.260796 for L32-L48
  • L = 48 absolute magnetisation 0.986508 at T = 1.5 and 0.039341 at T = 3.5
  • L = 48 critical-window autocorrelation time 45.487 sweeps at the exact critical temperature
  • 2 x 2 Monte Carlo benchmark maximum relative error 0.339 percent
  • Fourteen generated scientific figure pairs and three licensed microscopy images
  • Seven automated test sets passing

Project boundaries

  • Requires the pinned Julia 1.12.7 environment.
  • No MATLAB, Mathematica, or Python simulation is included.
  • The model is the classical two-dimensional nearest-neighbour ferromagnetic Ising model at zero external field.
  • The finite lattices use periodic boundaries, reduced units, fixed temperature points, and finite sample counts.
  • Local Metropolis updates show critical slowing and are not the most efficient available critical algorithm.
  • The microscopy images provide literature context and are not validation of the simulated lattice.
  • The project does not predict a particular magnetic material, reproduce quantum effects, or establish an infinite-lattice numerical proof.

Included

  1. 01Pinned Julia Project.toml and complete Manifest.toml
  2. 02Periodic square lattices with L = 16, 32, and 48
  3. 0327 temperatures from 1.5 to 3.5 with denser critical coverage
  4. 04Energy, absolute magnetisation, heat capacity, susceptibility, Binder cumulant, acceptance, autocorrelation, and effective-sample evidence
  5. 05Exact 2 x 2 enumeration and 100,000-sample Monte Carlo validation
  6. 06Open CSV, TOML, and JSON result files
  7. 07Fourteen generated result figures in PNG and SVG formats
  8. 08Three licensed magnetic-domain microscopy images with source and licence records
  9. 09Seven automated test sets
  10. 10Complete project files, models, calculations, and analysis material in a private GitHub repository
  11. 1180-page project documentation in PDF and editable Word formats
  12. 129-page setup and usage guide
  13. 1327 annotated references

Project record

No information is collected on this page.

Permanent project ID
GP-PH-0Q18DF4
Catalogued
22 Aug 2026
Completed
23 Aug 2026
Verified
23 Aug 2026
Demonstration
Included in repository

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.