VMC Object Diagram
From PIMC++
This is primarily for experts. Don't worry if this doesn't make sense to you.
The "integration" of the many body wave-function by VMC is typically embedded in a larger structure that involves optimizing the parameters in this many body wave function (some of which we will implement today). Here is an example of what this larger code might look like.
Generate Many-Body (N particle) wave function with S variational parameters![]()
![]()
Generate C sample configurations Put W walkers at random positions REPEAT FOR each walker DO Shift each walkers position calculate the transition probability
Accept with probability P=min(p,1) END FOR Save configurations UNTIL collected C sample configurations Optimize parameters Evaluate
for each configuration REPEAT Vary parameters
according to some minimization algorithm Evaluate
for each configuration UNTIL
is a minimum with respect to
Evaluate Energy and/or other observables
![]()
Notes on this procedure:
- It is unnecesary to generate samples if you have an analytic form of
. You can just vary the parameters in
and find the minimum. Collecting samples is just a way to get
- C should be large enough to make the minimization procedure stable.
- There are several sophisticated minimization algorithms we can use to find the minimum.
If we were to create an object oriented program to perform these tasks it might look like the the shown block diagram.









