Skip to main content

Diffusion Monte Carlo Visualization

In the summer of 2012, I worked as a undergraduate research assistant in the condensed matter theory group in the physics department at the College of William & Mary, under the guidance of Professor Shiwei Zhang. I was supported primarily by the Summer Experience Award from Reed College and partly by a Research Experience for Undergraduates (REU) grant from the National Science Foundation (NSF) through William & Mary.

I developed a Java package that performs one-electron, one-dimensional diffusion Monte Carlo (DMC) calculations with an interactive Graphical User Interface using Java’s Swing. I optimized the package; added a new method of visualization; add a new potential function; and add importance sampling (using the Metropolis algorithm) to improve DMC’s accuracy.

It was my first time using Java and the Eclipse IDE (integrated development environment), but definitely not my first time using either a general-purpose programming language (that would be C++) or an IDE (that would be Microsoft’s Visual Studio). By the end of the summer, I became intimately familiar with all the nuts and bolts of this package and became proficient in Java despite the fairly short learning period.

Along the way, I essentially taught myself Quantum Mechanics and Monte Carlo integration (specifically, Markov chain Monte Carlo). Overall, I found it delightful to see how researchers pull together ideas from many seemingly unrelated areas of math and physics to solve a problem.

What is DMC and why is it useful?

In this project, DMC is used to find the lowest energy eigenvalue and eigenstate of a quantum system. The ground state wave function can be obtained from any suitable trial wave function by a “projection” process in which excited states are attenuated exponentially, leaving behind the ground state. This projection process can be written as a path integral which is evaluated by Monte Carlo integration in which the sampling of the ground state wave function is done by a branching importance-sampled random walk in configuration space.

To learn more about either the theory of DMC or the Java package, please read my final project report. You can also download the source code from GitHub.

© 2021 Huy Nguyen© 2021