THE RESOURCE LIBRARY

Mesoscale Microstructure
Modeling.

Learn the physics. Understand the numerical method. Run a simulation and check its results.

FROM THE CLASSROOM TO YOUR COMPUTER

Experiments, models and movies.

Download all Julia + NumPy examples ↓

Explore computed results, understand the equations and run the same model in Julia or NumPy.

A SUGGESTED LEARNING PATH

Start with a question.
End with a checked result.

  1. 1

    Thermodynamics & fields

    Understand free energy, chemical potential, conserved fields and nonconserved order parameters.

  2. 2

    Equations & discretization

    Connect the Cahn–Hilliard and Allen–Cahn equations to finite-difference and spectral methods.

  3. 3

    Verification before interpretation

    Check conservation, time-step sensitivity, grid convergence and the relevant energy balance.

  4. 4

    Coupled physics & performance

    Introduce elasticity or additional fields, then explore parallel CPU and GPU implementations.

CODES, GUIDES & LEARNING MATERIAL

Explore the library.

25 resources
TutorialGetting started

Python calculations developed in notebook cells

Build the complete Python examples in explained cells, inspect plots and diagnostics, and run the notebooks in Jupyter.

Explore the notebook lessons ↗
TutorialGetting started

Developing teaching codes in steps

Write and test a small part before continuing: cluster labeling, diffusion, random walks, phase separation, Monte Carlo and spatial correlations.

Open the code lessons ↗
TutorialIntermediate

Ternary spinodal decomposition in NumPy

Develop my ternary phase-separation calculation in nine checked steps, then save composition fields for structure and correlation analysis.

Open the notebook lesson ↗
TutorialIntermediate

Bicontinuity and connected phases

Inspect measured connectivity in 2D and 3D simulations and explore the routes and connected networks within each phase.

Open the tutorial ↗
TutorialGetting started

Topology and connectivity of microstructures

Animate cluster labeling and periodic winding, then compare connected components, loops and percolation in editable patterns.

Open the tutorial ↗
TutorialIntermediate

My NRCM phase-field workshop examples

Work through my original C examples for spinodal decomposition and precipitate growth, with equations, input files and run instructions.

Open the tutorial ↗
TutorialIntermediate

Elastic Stress Effects Laboratory

Explore elastic stability, misfit tensors, self- and cross-interaction kernels, interface conditions and inhomogeneous elastic fields.

Open the tutorial ↗
TutorialIntermediate

Two ways to solve inhomogeneous elasticity

Corrected course notebook and two fully explained solvers, with stress maps, orientation sweeps and independent validation.

Run and explore the solvers ↗
TutorialGetting started

PINNs, explained simply

Interactive equation and boundary checks, a staged diffusion inverse problem, and the complete teaching notebook.

Explore the PINN lesson ↗
TutorialIntermediate

Monte Carlo: Ising and Potts

256 × 256 course simulations with high-resolution movies, diagnostics, and Julia/NumPy source.

Open Monte Carlo lab ↗
TutorialIntermediate

Elasticity reshapes phase separation

Compare chemical phase separation with homogeneous elasticity and examine how misfit and elastic constants change the calculated microstructure.

Work through the lesson ↗
TutorialGetting started

Chemical spinodal decomposition

Follow composition fluctuations as they develop into domains, and check conservation and free-energy changes in a Cahn–Hilliard simulation.

Work through the lesson ↗
TutorialGetting started

Diffusion through Fourier modes

Watch Fourier modes decay during diffusion and compare the numerical solution with an analytical benchmark.

Work through the lesson ↗
TutorialGetting started

The ink-drop experiment

Connect random molecular motion to spreading with an interactive ink-drop experiment and Julia and NumPy random-walk codes.

Work through the lesson ↗
SoftwareAdvanced

MicroSim: microstructure simulator

An open-source collection of phase-field solvers for CPU and GPU architectures. Start here for the full software stack.

Source code ↗
DocumentationGetting started

MicroSim documentation

Installation and solver documentation for preparing, running and understanding a MicroSim calculation.

Read documentation ↗
SoftwareIntermediate

Binary spinodal decomposition

My repository for studying spinodal decomposition in binary systems using a spectral method.

Explore repository ↗
TutorialGetting started

A reproducible Cahn–Hilliard example

A small Python example with periodic boundaries, mean-composition checks and an energy diagnostic. Includes the source for this website’s illustrative images.

Work through the example ↗
TutorialIntermediate

MicroSim example simulations

Example simulations supplied with the MicroSim repository. Follow the instructions for the chosen solver and record its version.

View examples ↗
SoftwareAdvanced

GPU phase-field: KKS-CuFFT

Explore the CUDA and FFT-based KKS solver module in MicroSim. Consult the repository requirements before compiling.

Explore module ↗
SoftwareAdvanced

Parallel GPU phase-field: KKS-FD-CUDA-MPI

The finite-difference CUDA/MPI module for parallel phase-field simulations in the MicroSim stack.

Explore module ↗
VideoGetting started

MicroSim workshop videos

The MicroSim team’s channel for demonstrations, tutorials and workshop recordings.

Watch tutorials ↗
Course materialIntermediate

MS5033: Mesoscale Microstructure Modeling

Course folder with Julia examples, computational notebooks, assignments and simulation videos. Topics include random walks, coarse graining, variational methods, Fourier methods and phase-field modeling. Classroom topics also include elastic stress effects on microstructural evolution. Access is subject to the folder’s Google Drive permissions.

Open course folder ↗
TutorialIntermediate

3D connectivity explorer

Rotate the simulated interface and inspect connected networks and periodic routes in both phases.

Open the explorer ↗
Course materialGetting started

Lab 01: Thermodynamics

Use Gibbs energy-composition curves and equal chemical potentials to calculate equilibrium phase compositions and amounts.

Open Lab 01 ↗

How the simulations are calculated.

I explain the governing equations and numerical methods used in these examples, together with the parameters, units and boundary conditions. I include numerical checks to help assess the results, such as whether a conserved quantity remains constant and whether reducing the grid spacing or time step changes the solution.

How I develop my codes.

I start with a small calculation, check its result and then add the next part. These lessons follow the same sequence, with explanations and checks at each stage. Open the worked Python, Julia and C lessons →