Two ways to solve inhomogeneous elasticity
Direct iterative perturbation and equivalent eigenstrain, with derivations, editable notebooks and independent checks.
Run and explore the solvers →Learn the physics. Understand the numerical method. Run a simulation and check its results.
Download all Julia + NumPy examples ↓
Explore computed results, understand the equations and run the same model in Julia or NumPy.
Direct iterative perturbation and equivalent eigenstrain, with derivations, editable notebooks and independent checks.
Run and explore the solvers →Misfit, habit lines, elastic kernels, phase interactions and soft or hard plates. Change the inputs and compare the resulting stresses and elastic energies.
Open the laboratory →Adjust a curve, test its physics, then learn how diffusion profiles can reveal unknown properties.
Start the PINN lesson →JULIA + NUMPY · HIGH-RESOLUTION MOVIES256 × 256 Ising and Potts simulations from the course.
Open the Monte Carlo lab →LIVE INTERACTIVE SIMULATION · JULIA + NUMPY SOURCEChange the molecule count and step length, follow one molecule, and compare spreading with the diffusion prediction.
Open the interactive experiment →JULIA + NUMPYWatch short wavelengths disappear first.
Open worked example →JULIA + NUMPYSee how small composition fluctuations grow during spinodal decomposition.
Open worked example →JULIA + NUMPYUse the elastic energy kernel from my teaching notebook in a phase-field calculation.
Open worked example →Understand free energy, chemical potential, conserved fields and nonconserved order parameters.
Connect the Cahn–Hilliard and Allen–Cahn equations to finite-difference and spectral methods.
Check conservation, time-step sensitivity, grid convergence and the relevant energy balance.
Introduce elasticity or additional fields, then explore parallel CPU and GPU implementations.
Build the complete Python examples in explained cells, inspect plots and diagnostics, and run the notebooks in Jupyter.
Explore the notebook lessons ↗Write and test a small part before continuing: cluster labeling, diffusion, random walks, phase separation, Monte Carlo and spatial correlations.
Open the code lessons ↗Develop my ternary phase-separation calculation in nine checked steps, then save composition fields for structure and correlation analysis.
Open the notebook lesson ↗Inspect measured connectivity in 2D and 3D simulations and explore the routes and connected networks within each phase.
Open the tutorial ↗Animate cluster labeling and periodic winding, then compare connected components, loops and percolation in editable patterns.
Open the tutorial ↗Work through my original C examples for spinodal decomposition and precipitate growth, with equations, input files and run instructions.
Open the tutorial ↗Explore elastic stability, misfit tensors, self- and cross-interaction kernels, interface conditions and inhomogeneous elastic fields.
Open the tutorial ↗Corrected course notebook and two fully explained solvers, with stress maps, orientation sweeps and independent validation.
Run and explore the solvers ↗Interactive equation and boundary checks, a staged diffusion inverse problem, and the complete teaching notebook.
Explore the PINN lesson ↗256 × 256 course simulations with high-resolution movies, diagnostics, and Julia/NumPy source.
Open Monte Carlo lab ↗Compare chemical phase separation with homogeneous elasticity and examine how misfit and elastic constants change the calculated microstructure.
Work through the lesson ↗Follow composition fluctuations as they develop into domains, and check conservation and free-energy changes in a Cahn–Hilliard simulation.
Work through the lesson ↗Watch Fourier modes decay during diffusion and compare the numerical solution with an analytical benchmark.
Work through the lesson ↗Connect random molecular motion to spreading with an interactive ink-drop experiment and Julia and NumPy random-walk codes.
Work through the lesson ↗An open-source collection of phase-field solvers for CPU and GPU architectures. Start here for the full software stack.
Source code ↗Installation and solver documentation for preparing, running and understanding a MicroSim calculation.
Read documentation ↗My repository for studying spinodal decomposition in binary systems using a spectral method.
Explore repository ↗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 ↗Example simulations supplied with the MicroSim repository. Follow the instructions for the chosen solver and record its version.
View examples ↗Explore the CUDA and FFT-based KKS solver module in MicroSim. Consult the repository requirements before compiling.
Explore module ↗The finite-difference CUDA/MPI module for parallel phase-field simulations in the MicroSim stack.
Explore module ↗The MicroSim team’s channel for demonstrations, tutorials and workshop recordings.
Watch tutorials ↗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 ↗Rotate the simulated interface and inspect connected networks and periodic routes in both phases.
Open the explorer ↗Use Gibbs energy-composition curves and equal chemical potentials to calculate equilibrium phase compositions and amounts.
Open Lab 01 ↗No resources match your search. Try another topic or choose “All resources”.
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.
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 →