Consider the classical 2D Ising Hamiltonian
and the partition function at inverse temperature
for a given configuration of spins
Monte Carlo Ising model simulation | Comparison of update methods |
---|---|
Sections:
- Exact Ising Model Computations for Small Lattices
- Generation of configurations, thermodynamic functions, density of states, energy distributions
- Computational complexity - basic algorithm scaling
- Monte Carlo Algorithms
- Markov Chains and Markov Chain Monte Carlo (MCMC)
- Implementations: Metropolis-Hastings, Heatbath (Glauber), Wolff, and Wang-Landau
- Diagnostics of MCMC: equilibriation, trace plots, initial condition dependence, autocorrelation
- Error analysis: benchmarking against exact results, effective sample size, thinning
- Extensions (not done)
- More error analysis: Batching, jackknife, bootstrap
- Rewighting (multiple histogram techniques), parallel tempering, simulated annealing
- Statistical Methodologies
- Estimation of
$\beta$ and$H$ : maximum likelihood - Phase transitions: principle component analysis as machine learning
- Logistic regression for the nearest-neighbor coupling
$J$ . (Not done) - ANOVA for Monte Carlo runs over ranges of initial conditions. (Not done)
- Estimation of
- Future Extensions
- Computations for generalizations of the Ising model:
- Higher order spin interactions, NN and NNN interactions,
$\mathbb{Z}_n$ models,$O(N)$ spin models, spin$s$ Ising, Potts models, Blume-Capel, Ashkin-Teller, lattice field theories
- Higher order spin interactions, NN and NNN interactions,
- Partition function zeros at complex H and complex T:
- Cummulants, Yang-Lee edge, hysterisis/metestable states
- Monte-Carlo renormalization group
- Wang-Landau computation of universal data of Ising critical point
- Wang-Landau computation of the universal location of the Yang-Lee edge singulairty
- Computations for generalizations of the Ising model:
Discussion of Code:
- Sections 1 and 2 are contained in a single Jupyter notebook, Ising_model_playground, so as the be more akin to lectures notes or a textbook.
- Section 3 is contained in a single Jupyter notebook
- Section 4 are both split up into multiple jupyter notebooks, one for each subsection, IMP_MLE and IMP_PCA.
- This project will be a work in progress, updated as new work is done.