Path Integral Quantum Monte Carlo
Public Member Functions | Public Attributes | List of all members
PathIntegralMonteCarlo Class Reference

The main driver class for the entire path integral monte carlo program. More...

#include <pimc.h>

Public Member Functions

 PathIntegralMonteCarlo (boost::ptr_vector< Path > &, MTRand &, boost::ptr_vector< move_vector > &, boost::ptr_vector< estimator_vector > &, const bool, uint32 binSize=100)
 Constructor. More...
 
 ~PathIntegralMonteCarlo ()
 Destructor.
 
void equilStep (const uint32, const bool, const bool)
 Equilibration. More...
 
void equilStepOffDiagonal (const uint32, const bool)
 
void step ()
 PIMC step. More...
 
void finalOutput ()
 Output simulation statistics to disk. More...
 
void saveState (const int finalSave=0)
 Save the state of the simulation to disk, including all path, worm, move and estimator data.
 
void outputPDB ()
 Output the worldline configuration to disk using PDB , suitable for plotting using vmd. More...
 
void printWormState ()
 

Public Attributes

int numStoredBins
 Number of stored estimators.
 
int numDiagonal
 Number of consecutive diagonal configs.
 
int numConfig
 Number of configurations;.
 
int numCoMAttempted
 Number of Center of Mass moves.
 
int prevNumCoMAttempted
 Number of Center of Mass moves attempted.
 
int numCoMAccepted
 Number of equil CoM moves accepted.
 
int numDisplaceAttempted
 Number of equil Displace moves.
 
int numDisplaceAccepted
 Number of equil Displace moves accepted.
 
int numMuAttempted
 Number of moves between mu adjustments.
 
int numNAttempted
 The number of particle measurements.
 
int cN
 The current total number of particles.
 

Detailed Description

The main driver class for the entire path integral monte carlo program.

Holds the path, action, move and estimator objects along with methods which actually perform the monte carlo sampling procedure.

Definition at line 37 of file pimc.h.

Constructor & Destructor Documentation

◆ PathIntegralMonteCarlo()

PathIntegralMonteCarlo::PathIntegralMonteCarlo ( boost::ptr_vector< Path > &  _pathPtrVec,
MTRand &  _random,
boost::ptr_vector< move_vector > &  _movePtrVec,
boost::ptr_vector< estimator_vector > &  _estimatorPtrVec,
const bool  _startWithState,
uint32  _binSize = 100 
)

Constructor.

Here we initialize all data structures, moves and estimators that will be required with peforming a path integral quantum monte carlo simulation. The initialization depends on whether or not we are restarting, or starting from a user supplied state.

Definition at line 27 of file pimc.cpp.

Member Function Documentation

◆ equilStep()

void PathIntegralMonteCarlo::equilStep ( const uint32  iStep,
const bool  relaxC0,
const bool  relaxmu 
)

Equilibration.

The equilibration method, where we perform fully diagonal moves 1/3 of the time, finding an optimal, COM step, then for another 1/3 we perform all moves adjusting C0 to yield a diagonal fraction near 0.75 and and for the final 1/3 we just equilibrate.

Definition at line 167 of file pimc.cpp.

◆ finalOutput()

void PathIntegralMonteCarlo::finalOutput ( )

Output simulation statistics to disk.

We perform this once at the very end of the simulation. It saves the details of accetance probabilities as well as estimators to a file.

Definition at line 451 of file pimc.cpp.

◆ outputPDB()

void PathIntegralMonteCarlo::outputPDB ( )

Output the worldline configuration to disk using PDB , suitable for plotting using vmd.

We must post-process the final pdb file and split it up due to connectivity changes.

See also
For the PDB specification: http://www.wwpdb.org/documentation/format32/v3.2.html

Definition at line 867 of file pimc.cpp.

◆ step()

void PathIntegralMonteCarlo::step ( )

PIMC step.

This method performs the metropolis sampling, which is actually a complicated multi-step operation which consists of various types of moves. They can in general occur at different frequencies. We also measure all estimators.

Definition at line 383 of file pimc.cpp.


The documentation for this class was generated from the following files: