VMC Object Diagram

From PIMC++

Jump to: navigation, search

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
   math
   math
   math
 Generate C sample configurations
   Put W walkers at random positions
   REPEAT
     FOR each walker DO
       Shift each walkers position
       calculate the transition probability 
       math
       Accept with probability P=min(p,1)
     END FOR
     Save configurations
   UNTIL collected C sample configurations
 Optimize parameters
   Evaluate math for each configuration
   REPEAT
     Vary parameters math according to some minimization algorithm
     Evaluate math for each configuration
   UNTIL math is a minimum with respect to math
 Evaluate Energy and/or other observables
   math


Notes on this procedure:

  1. It is unnecesary to generate samples if you have an analytic form of math. You can just vary the parameters in math and find the minimum. Collecting samples is just a way to get math
  2. C should be large enough to make the minimization procedure stable.
  3. 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.

VMC OOP
VMC OOP
Personal tools