#include <QMCRun.h>
Public Member Functions | |
~QMCRun () | |
QMCRun () | |
Creates an uninitialized instance of this class. | |
void | initialize (QMCInput *input) |
Initializes this object. | |
void | initializeFunction () |
Initalize the QMC Function. | |
void | zeroOut () |
Sets all of the data in the object to zero. | |
bool | step (bool writeConfigs, int iteration) |
Propagate the QMC calculation one time step forward. | |
QMCProperties * | getProperties () |
Gets the statistics for the properties that have been calculated. | |
QMCProperties * | getTimeStepProperties () |
Gets the statistics for the properties that have been calculated at this time step. | |
QMCPropertyArrays * | getFWProperties () |
Gets the statistics for the future walking properties that have been calculated. | |
QMCPropertyArrays * | getFWTimeStepProperties () |
Gets the statistics for the future walking properties that have been calculated at this time step. | |
void | startTimers () |
Starts the timers in the EquilibrationArray. | |
void | stopTimers () |
Stops the timers in the EquilibrationArray. | |
Stopwatch * | getPropagationStopwatch () |
Gets the the propagation stopwatch from the appropriate element of the EquilibrationArray. | |
Stopwatch * | getEquilibrationStopwatch () |
Gets the equilibration stopwatch from the appropriate element of the EquilibrationArray. | |
double | getWeights () |
Gets the total statistical weights for all the current living walkers. | |
double | getPopulationSizeBiasCorrectionFactor () |
Gets the factor that corrects the population size bias in the statistics. | |
int | getNumberOfWalkers () |
Gets the current number of walkers. | |
void | randomlyInitializeWalkers () |
Generates all of the walkers by initializing the electronic configurations for the walkers using an algorithm from QMCInitializeWalkerFactory. | |
void | writeEnergies (ostream &strm) |
Writes the energies of all the walkers to a stream. | |
void | calculateElectronDensities () |
Calculates the distances between all pairs of particles and records them in histograms. | |
Array1D< double > * | getPllSpinHistogram () |
Gets a pointer to the the histogram of distances between parallel spin electrons. | |
Array1D< double > * | getOppSpinHistogram () |
Gets a pointer to the histogram of distances between opposite spin electrons. | |
Array1D< Array1D< double > > * | getAlphaHistograms () |
Gets a pointer to the alpha one electron density histograms. | |
Array1D< Array1D< double > > * | getBetaHistograms () |
Gets a pointer to the beta one electron density histograms. | |
Array1D< Array1D< double > > * | getPllxCorrelationDiagram () |
Gets a pointer to the 2D x coordinate parallel pair correlation diagram. | |
Array1D< Array1D< double > > * | getPllyCorrelationDiagram () |
Gets a pointer to the 2D y coordinate parallel pair correlation diagram. | |
Array1D< Array1D< double > > * | getPllzCorrelationDiagram () |
Gets a pointer to the 2D z coordinate parallel pair correlation diagram. | |
Array1D< Array1D< double > > * | getOppxCorrelationDiagram () |
Gets a pointer to the 2D x coordinate opposite pair correlation diagram. | |
Array1D< Array1D< double > > * | getOppyCorrelationDiagram () |
Gets a pointer to the 2D y coordinate opposite pair correlation diagram. | |
Array1D< Array1D< double > > * | getOppzCorrelationDiagram () |
Gets a pointer to the 2D z coordinate opposite pair correlation diagram. | |
double | getdr () |
Gets the size of a bin in the electron density histograms. | |
void | toXML (ostream &strm) |
Writes the state of this object to an XML stream. | |
bool | readXML (istream &strm) |
Reads the state of this object from an XML stream. | |
void | updateHFPotential () |
Private Member Functions | |
void | unitWeightBranching () |
During a DMC calculation branch the walkers while keeping the weights equal to one. | |
void | nonunitWeightBranching () |
During a DMC calculation branch a walker if its weight exceeds a threshold and fuse walkers when their weights fall below a threshold. | |
void | ack_reconfiguration () |
A new kind of branching where the number of walkers is a constant. | |
void | propagateWalkers (bool writeConfigs, int iteration) |
Proposes trial walker moves and accepts or rejects them. | |
void | branchWalkers () |
Creates and destroys walkers based on their weights. | |
void | calculateObservables () |
Adds the observable data calculated during this step to the data that has already been recorded. | |
void | calculatePopulationSizeBiasCorrectionFactor () |
Calculates a factor that is used in removing the bias introduced into a calculation by using a finite number of walkers. | |
Private Attributes | |
list< QMCWalker > | wlist |
List of all the walkers. | |
QMCFunctions * | QMF |
QMCEquilibrationArray | EquilibrationArray |
The array of Decorrelation objects for this group of walkers. | |
QMCProperties | Properties |
The statistics for this group of walkers if QMCEquilibrationArray is not used. | |
QMCPropertyArrays | fwProperties |
The statistics for this group of walkers if QMCEquilibrationArray is not used. | |
QMCProperties | timeStepProperties |
The statistics for these walkers at this time step. | |
QMCPropertyArrays | fwTimeStepProperties |
The statistics for these walkers at this time step, using future walking. | |
QMCInput * | Input |
Input data to control the calculation. | |
double | populationSizeBiasCorrectionFactor |
A factor that is used in removing the bias introduced into a calculation by using a finite number of walkers. | |
queue< double > | correctionDivisor |
This queue is only used by calculatePopulationSizeBiasCorrectionFactor used to store the history of populationSizeBiasCorrectionFactor factors. | |
int | growthRate |
Growth = Births - Deaths. | |
double | max_pair_distance |
The maximum distance between a pair of particles that will be recorded in the histograms. | |
double | dr |
The size of a bin in the pair histograms. | |
Array1D< double > | pllSpinHistogram |
The histogram of distances between parallel spin electrons. | |
Array1D< double > | oppSpinHistogram |
The histogram of distances between opposite spin electrons. | |
Array1D< Array1D< double > > | alphaHistograms |
The alpha one electron density histograms. | |
Array1D< Array1D< double > > | betaHistograms |
The beta one electron density histograms. | |
Array1D< Array1D< double > > | pllxCorrelationDiagram |
The 2D x coordinate parallel pair correlation diagram. | |
Array1D< Array1D< double > > | pllyCorrelationDiagram |
The 2D y coordinate parallel pair correlation diagram. | |
Array1D< Array1D< double > > | pllzCorrelationDiagram |
The 2D z coordinate parallel pair correlation diagram. | |
Array1D< Array1D< double > > | oppxCorrelationDiagram |
The 2D x coordinate opposite pair correlation diagram. | |
Array1D< Array1D< double > > | oppyCorrelationDiagram |
The 2D y coordinate opposite pair correlation diagram. | |
Array1D< Array1D< double > > | oppzCorrelationDiagram |
The 2D z coordinate opposite pair correlation diagram. | |
QMCHartreeFock | HartreeFock |
These objects allow HF calculations to be done with QMC. |
Definition at line 35 of file QMCRun.h.
QMCRun::~QMCRun | ( | ) |
QMCRun::QMCRun | ( | ) |
Creates an uninitialized instance of this class.
Definition at line 21 of file QMCRun.cpp.
References populationSizeBiasCorrectionFactor.
void QMCRun::initialize | ( | QMCInput * | input | ) |
Initializes this object.
input | input data for the calculation |
Definition at line 150 of file QMCRun.cpp.
References Array1D< T >::allocate(), alphaHistograms, betaHistograms, QMCFlags::calculate_bf_density, Array1D< T >::dim1(), dr, EquilibrationArray, QMCInput::flags, fwProperties, fwTimeStepProperties, QMCMolecule::getNumberAtoms(), QMCWavefunction::getNumberBasisFunctions(), QMCWavefunction::getNumberElectrons(), QMCNuclearForces::getNumBins(), HartreeFock, QMCHartreeFock::Initialize(), initializeFunction(), Input, max_pair_distance, QMCFlags::max_pair_distance, QMCInput::Molecule, QMCFlags::nuclear_derivatives, QMCMolecule::NucleiTypes, oppSpinHistogram, oppxCorrelationDiagram, QMCFlags::oppxCorrelationDiagramMax, QMCFlags::oppxCorrelationDiagramMin, oppyCorrelationDiagram, QMCFlags::oppyCorrelationDiagramMax, QMCFlags::oppyCorrelationDiagramMin, oppzCorrelationDiagram, QMCFlags::oppzCorrelationDiagramMax, QMCFlags::oppzCorrelationDiagramMin, pllSpinHistogram, pllxCorrelationDiagram, QMCFlags::pllxCorrelationDiagramMax, QMCFlags::pllxCorrelationDiagramMin, pllyCorrelationDiagram, QMCFlags::pllyCorrelationDiagramMax, QMCFlags::pllyCorrelationDiagramMin, pllzCorrelationDiagram, QMCFlags::pllzCorrelationDiagramMax, QMCFlags::pllzCorrelationDiagramMin, Properties, QMCEquilibrationArray::setCalcDensity(), QMCPropertyArrays::setCalcDensity(), QMCEquilibrationArray::setCalcForces(), QMCPropertyArrays::setCalcForces(), QMCFlags::use_equilibration_array, QMCFlags::use_hf_potential, QMCInput::WF, QMCFlags::write_electron_densities, QMCFlags::writeOppxCorrelationDiagram, QMCFlags::writeOppyCorrelationDiagram, QMCFlags::writeOppzCorrelationDiagram, QMCFlags::writePllxCorrelationDiagram, QMCFlags::writePllyCorrelationDiagram, QMCFlags::writePllzCorrelationDiagram, QMCMolecule::Z, QMCPropertyArrays::zeroOut(), QMCProperties::zeroOut(), and QMCEquilibrationArray::zeroOut().
Referenced by QMCManager::initialize().
void QMCRun::initializeFunction | ( | ) |
Initalize the QMC Function.
This is available separately because it will need to be reset everytime we change the number of parameters we're optimizing.
Definition at line 139 of file QMCRun.cpp.
References QMCInput::flags, QMCFunctionsFactory::functionsFactory(), HartreeFock, QMCSCFJastrow::initialize(), Input, QMF, and QMCFlags::trial_function_type.
Referenced by initialize(), and QMCManager::run().
void QMCRun::zeroOut | ( | ) |
Sets all of the data in the object to zero.
Definition at line 125 of file QMCRun.cpp.
References EquilibrationArray, QMCInput::flags, fwProperties, Input, Properties, QMCFlags::use_equilibration_array, wlist, QMCPropertyArrays::zeroOut(), QMCProperties::zeroOut(), and QMCEquilibrationArray::zeroOut().
Referenced by QMCManager::equilibration_step(), QMCManager::gatherProperties(), QMCManager::initializeCalculationState(), and QMCManager::zeroOut().
bool QMCRun::step | ( | bool | writeConfigs, | |
int | iteration | |||
) |
Propagate the QMC calculation one time step forward.
iteration | our current iteration number. If equilibrating, less than zero |
Definition at line 1024 of file QMCRun.cpp.
References branchWalkers(), calculateObservables(), calculatePopulationSizeBiasCorrectionFactor(), QMCFlags::energy_estimated, QMCFlags::energy_estimated_original, QMCFlags::energy_trial, QMCFlags::equilibration_steps, QMCInput::flags, QMCWavefunction::getNumberElectrons(), getNumberOfWalkers(), getWeights(), globalInput, growthRate, Input, QMCFlags::my_rank, QMCFlags::one_e_per_iter, propagateWalkers(), randomlyInitializeWalkers(), and QMCInput::WF.
Referenced by QMCManager::run().
QMCProperties * QMCRun::getProperties | ( | ) |
Gets the statistics for the properties that have been calculated.
Definition at line 992 of file QMCRun.cpp.
References QMCEquilibrationArray::chooseDecorrObject(), EquilibrationArray, QMCInput::flags, Input, Properties, and QMCFlags::use_equilibration_array.
Referenced by QMCManager::gatherProperties(), QMCManager::optimize(), QMCManager::readXML(), QMCManager::run(), and QMCManager::synchronizeDMCEnsemble().
QMCProperties * QMCRun::getTimeStepProperties | ( | ) |
Gets the statistics for the properties that have been calculated at this time step.
Definition at line 987 of file QMCRun.cpp.
References timeStepProperties.
Referenced by QMCManager::run().
QMCPropertyArrays * QMCRun::getFWProperties | ( | ) |
Gets the statistics for the future walking properties that have been calculated.
Definition at line 1005 of file QMCRun.cpp.
References fwProperties.
Referenced by QMCManager::gatherDensities(), QMCManager::gatherExtraProperties(), and QMCManager::gatherForces().
QMCPropertyArrays * QMCRun::getFWTimeStepProperties | ( | ) |
Gets the statistics for the future walking properties that have been calculated at this time step.
Definition at line 1000 of file QMCRun.cpp.
References fwTimeStepProperties.
void QMCRun::startTimers | ( | ) |
Starts the timers in the EquilibrationArray.
Definition at line 967 of file QMCRun.cpp.
References EquilibrationArray, and QMCEquilibrationArray::startTimers().
Referenced by QMCManager::run().
void QMCRun::stopTimers | ( | ) |
Stops the timers in the EquilibrationArray.
Definition at line 972 of file QMCRun.cpp.
References EquilibrationArray, and QMCEquilibrationArray::stopTimers().
Referenced by QMCManager::finalize(), and QMCManager::run().
Stopwatch * QMCRun::getPropagationStopwatch | ( | ) |
Gets the the propagation stopwatch from the appropriate element of the EquilibrationArray.
Definition at line 977 of file QMCRun.cpp.
References EquilibrationArray, and QMCEquilibrationArray::getPropagationStopwatch().
Referenced by QMCManager::finalize().
Stopwatch * QMCRun::getEquilibrationStopwatch | ( | ) |
Gets the equilibration stopwatch from the appropriate element of the EquilibrationArray.
Definition at line 982 of file QMCRun.cpp.
References EquilibrationArray, and QMCEquilibrationArray::getEquilibrationStopwatch().
Referenced by QMCManager::finalize().
double QMCRun::getWeights | ( | ) |
Gets the total statistical weights for all the current living walkers.
Definition at line 831 of file QMCRun.cpp.
References wlist.
Referenced by ack_reconfiguration(), calculateObservables(), QMCManager::readXML(), QMCManager::run(), step(), and QMCManager::writeEnergyResultsSummary().
double QMCRun::getPopulationSizeBiasCorrectionFactor | ( | ) |
Gets the factor that corrects the population size bias in the statistics.
Definition at line 842 of file QMCRun.cpp.
References populationSizeBiasCorrectionFactor.
Referenced by QMCManager::run().
int QMCRun::getNumberOfWalkers | ( | ) |
Gets the current number of walkers.
Definition at line 1019 of file QMCRun.cpp.
References wlist.
Referenced by ack_reconfiguration(), calculateObservables(), QMCManager::run(), step(), QMCManager::writeEnergyResultsSummary(), and QMCManager::writeXML().
void QMCRun::randomlyInitializeWalkers | ( | ) |
Generates all of the walkers by initializing the electronic configurations for the walkers using an algorithm from QMCInitializeWalkerFactory.
Definition at line 383 of file QMCRun.cpp.
References QMCFlags::energy_estimated_original, QMCFunctions::evaluate(), QMCInput::flags, QMCWalker::getR(), QMCWalker::getWalkerData(), globalInput, QMCWalker::initialize(), QMCInitializeWalkerFactory::initializeWalkerFactory(), QMCInitializeWalker::initializeWalkerPosition(), Input, QMCWalker::isSingular(), QMCWalkerData::localEnergy, QMCWalker::newID(), QMCFlags::number_of_walkers, QMCFlags::number_of_walkers_initial, QMF, QMCFlags::rel_cutoff, QMCWalker::setR(), QMCFlags::walker_initialization_method, and wlist.
Referenced by QMCManager::initializeCalculationState(), and step().
void QMCRun::writeEnergies | ( | ostream & | strm | ) |
Writes the energies of all the walkers to a stream.
strm | stream to write energies to. |
Definition at line 497 of file QMCRun.cpp.
References wlist.
Referenced by QMCManager::run().
void QMCRun::calculateElectronDensities | ( | ) |
Calculates the distances between all pairs of particles and records them in histograms.
Definition at line 505 of file QMCRun.cpp.
References alphaHistograms, betaHistograms, dr, QMCInput::flags, QMCWavefunction::getNumberElectrons(), Input, max_pair_distance, oppSpinHistogram, oppxCorrelationDiagram, QMCFlags::oppxCorrelationDiagramMax, QMCFlags::oppxCorrelationDiagramMin, oppyCorrelationDiagram, QMCFlags::oppyCorrelationDiagramMax, QMCFlags::oppyCorrelationDiagramMin, oppzCorrelationDiagram, QMCFlags::oppzCorrelationDiagramMax, QMCFlags::oppzCorrelationDiagramMin, pllSpinHistogram, pllxCorrelationDiagram, QMCFlags::pllxCorrelationDiagramMax, QMCFlags::pllxCorrelationDiagramMin, pllyCorrelationDiagram, QMCFlags::pllyCorrelationDiagramMax, QMCFlags::pllyCorrelationDiagramMin, pllzCorrelationDiagram, QMCFlags::pllzCorrelationDiagramMax, QMCFlags::pllzCorrelationDiagramMin, QMCInput::WF, wlist, QMCFlags::writeOppxCorrelationDiagram, QMCFlags::writeOppyCorrelationDiagram, QMCFlags::writeOppzCorrelationDiagram, QMCFlags::writePllxCorrelationDiagram, QMCFlags::writePllyCorrelationDiagram, and QMCFlags::writePllzCorrelationDiagram.
Referenced by QMCManager::run().
Array1D< double > * QMCRun::getPllSpinHistogram | ( | ) |
Gets a pointer to the the histogram of distances between parallel spin electrons.
Definition at line 557 of file QMCRun.cpp.
References pllSpinHistogram.
Referenced by QMCManager::gatherHistograms().
Array1D< double > * QMCRun::getOppSpinHistogram | ( | ) |
Gets a pointer to the histogram of distances between opposite spin electrons.
Definition at line 562 of file QMCRun.cpp.
References oppSpinHistogram.
Referenced by QMCManager::gatherHistograms().
Gets a pointer to the alpha one electron density histograms.
Definition at line 567 of file QMCRun.cpp.
References alphaHistograms.
Referenced by QMCManager::gatherHistograms().
Gets a pointer to the beta one electron density histograms.
Definition at line 572 of file QMCRun.cpp.
References betaHistograms.
Referenced by QMCManager::gatherHistograms().
Gets a pointer to the 2D x coordinate parallel pair correlation diagram.
Definition at line 577 of file QMCRun.cpp.
References pllxCorrelationDiagram.
Referenced by QMCManager::gatherHistograms().
Gets a pointer to the 2D y coordinate parallel pair correlation diagram.
Definition at line 582 of file QMCRun.cpp.
References pllyCorrelationDiagram.
Referenced by QMCManager::gatherHistograms().
Gets a pointer to the 2D z coordinate parallel pair correlation diagram.
Definition at line 587 of file QMCRun.cpp.
References pllzCorrelationDiagram.
Referenced by QMCManager::gatherHistograms().
Gets a pointer to the 2D x coordinate opposite pair correlation diagram.
Definition at line 592 of file QMCRun.cpp.
References oppxCorrelationDiagram.
Referenced by QMCManager::gatherHistograms().
Gets a pointer to the 2D y coordinate opposite pair correlation diagram.
Definition at line 597 of file QMCRun.cpp.
References oppyCorrelationDiagram.
Referenced by QMCManager::gatherHistograms().
Gets a pointer to the 2D z coordinate opposite pair correlation diagram.
Definition at line 602 of file QMCRun.cpp.
References oppzCorrelationDiagram.
Referenced by QMCManager::gatherHistograms().
double QMCRun::getdr | ( | ) |
Gets the size of a bin in the electron density histograms.
Definition at line 607 of file QMCRun.cpp.
References dr.
Referenced by QMCManager::writeElectronDensityHistograms().
void QMCRun::toXML | ( | ostream & | strm | ) |
Writes the state of this object to an XML stream.
strm | XML stream |
Definition at line 847 of file QMCRun.cpp.
References correctionDivisor, EquilibrationArray, QMCInput::flags, QMCFlags::future_walking, fwProperties, globalInput, Input, populationSizeBiasCorrectionFactor, Properties, QMCFlags::run_type, QMCPropertyArrays::toXML(), QMCProperties::toXML(), QMCEquilibrationArray::toXML(), QMCFlags::use_equilibration_array, and wlist.
Referenced by QMCManager::writeXML().
bool QMCRun::readXML | ( | istream & | strm | ) |
Reads the state of this object from an XML stream.
strm | XML stream |
Definition at line 889 of file QMCRun.cpp.
References correctionDivisor, EquilibrationArray, QMCInput::flags, QMCFlags::future_walking, fwProperties, globalInput, QMCWalker::initialize(), Input, QMCFlags::number_of_walkers, populationSizeBiasCorrectionFactor, Properties, QMF, QMCWalker::readXML(), QMCPropertyArrays::readXML(), QMCProperties::readXML(), QMCEquilibrationArray::readXML(), QMCFlags::run_type, QMCFlags::use_equilibration_array, and wlist.
Referenced by QMCManager::readXML().
void QMCRun::updateHFPotential | ( | ) |
Definition at line 1123 of file QMCRun.cpp.
References QMCHartreeFock::AddElectron(), QMCWavefunction::getNumberElectrons(), HartreeFock, QMCHartreeFock::IncrementSample(), Input, QMCInput::WF, and wlist.
Referenced by QMCManager::run().
void QMCRun::unitWeightBranching | ( | ) | [private] |
During a DMC calculation branch the walkers while keeping the weights equal to one.
This was developed by Lester. It is of Chip Kent's (my) experience that this method often has an exponentially growing or shrinking population and has a large time step error.
Definition at line 612 of file QMCRun.cpp.
References ran, Random::unidev(), and wlist.
Referenced by branchWalkers().
void QMCRun::nonunitWeightBranching | ( | ) | [private] |
During a DMC calculation branch a walker if its weight exceeds a threshold and fuse walkers when their weights fall below a threshold.
Definition at line 658 of file QMCRun.cpp.
References QMCFlags::branching_threshold, QMCInput::flags, QMCFlags::fusion_threshold, Input, ran, Random::unidev(), and wlist.
Referenced by branchWalkers().
void QMCRun::ack_reconfiguration | ( | ) | [private] |
A new kind of branching where the number of walkers is a constant.
Basically, bad walkers are replaced with good walkers. I'm not sure if the implementation is 100% correct.
See Phys Rev E, vol 16, no 4, pg 4566 Diffusion Monte Carlo methods with a fixed number of walkers Assaraf, Caffarel, Khelif
Definition at line 734 of file QMCRun.cpp.
References QMCInput::flags, getNumberOfWalkers(), getWeights(), Input, QMCFlags::number_of_walkers_initial, ran, Random::unidev(), and wlist.
Referenced by branchWalkers().
void QMCRun::propagateWalkers | ( | bool | writeConfigs, | |
int | iteration | |||
) | [private] |
Proposes trial walker moves and accepts or rejects them.
This function steps QMCWalker in two stages. First, it calculates the forward green's function by calling initializePropagation, and then it calculates the reverse green's function by calling processPropgatation. The purpose of this is to enable this function to call QMCFunction for several walkers at once (i.e. in chunks) by pausing the rest of the tasks that QMCWalker has to do.
iteration | our current iteration number. If equilibrating, less than zero |
Definition at line 26 of file QMCRun.cpp.
References Array1D< T >::allocate(), QMCFunctions::calculate_CorrelatedSampling(), QMCInput::cs_Parameters, Array1D< T >::deallocate(), Array1D< T >::dim1(), QMCFunctions::evaluate(), QMCInput::flags, globalInput, Input, QMF, QMCFlags::walkers_per_pass, and wlist.
Referenced by step().
void QMCRun::branchWalkers | ( | ) | [private] |
Creates and destroys walkers based on their weights.
Definition at line 85 of file QMCRun.cpp.
References ack_reconfiguration(), QMCFlags::branching_method, QMCInput::flags, Input, nonunitWeightBranching(), QMCFlags::run_type, and unitWeightBranching().
Referenced by step().
void QMCRun::calculateObservables | ( | ) | [private] |
Adds the observable data calculated during this step to the data that has already been recorded.
Definition at line 462 of file QMCRun.cpp.
References EquilibrationArray, QMCInput::flags, fwProperties, fwTimeStepProperties, getNumberOfWalkers(), getWeights(), growthRate, QMCProperties::growthRate, Input, QMCPropertyArrays::newSample(), QMCProperties::newSample(), QMCEquilibrationArray::newSample(), QMCProperty::newSample(), populationSizeBiasCorrectionFactor, Properties, timeStepProperties, QMCFlags::use_equilibration_array, wlist, QMCPropertyArrays::zeroOut(), and QMCProperties::zeroOut().
Referenced by step().
void QMCRun::calculatePopulationSizeBiasCorrectionFactor | ( | ) | [private] |
Calculates a factor that is used in removing the bias introduced into a calculation by using a finite number of walkers.
The bias is only present in calculations that use branching.
This factor is described in Umrigar, Nightingale, Runge 1993 paper (UNR93).
Definition at line 1067 of file QMCRun.cpp.
References QMCFlags::correct_population_size_bias, correctionDivisor, QMCFlags::dt, QMCFlags::dt_effective, QMCFlags::energy_estimated_original, QMCFlags::energy_trial, QMCInput::flags, Input, IeeeMath::isNaN(), populationSizeBiasCorrectionFactor, and QMCFlags::run_type.
Referenced by step().
list<QMCWalker> QMCRun::wlist [private] |
List of all the walkers.
Definition at line 250 of file QMCRun.h.
Referenced by ack_reconfiguration(), calculateElectronDensities(), calculateObservables(), getNumberOfWalkers(), getWeights(), nonunitWeightBranching(), propagateWalkers(), randomlyInitializeWalkers(), readXML(), toXML(), unitWeightBranching(), updateHFPotential(), writeEnergies(), and zeroOut().
QMCFunctions* QMCRun::QMF [private] |
Definition at line 252 of file QMCRun.h.
Referenced by initializeFunction(), propagateWalkers(), randomlyInitializeWalkers(), readXML(), and ~QMCRun().
The array of Decorrelation objects for this group of walkers.
Definition at line 257 of file QMCRun.h.
Referenced by calculateObservables(), getEquilibrationStopwatch(), getPropagationStopwatch(), getProperties(), initialize(), readXML(), startTimers(), stopTimers(), toXML(), and zeroOut().
QMCProperties QMCRun::Properties [private] |
The statistics for this group of walkers if QMCEquilibrationArray is not used.
Definition at line 263 of file QMCRun.h.
Referenced by calculateObservables(), getProperties(), initialize(), readXML(), toXML(), and zeroOut().
QMCPropertyArrays QMCRun::fwProperties [private] |
The statistics for this group of walkers if QMCEquilibrationArray is not used.
Definition at line 269 of file QMCRun.h.
Referenced by calculateObservables(), getFWProperties(), initialize(), readXML(), toXML(), and zeroOut().
QMCProperties QMCRun::timeStepProperties [private] |
The statistics for these walkers at this time step.
Definition at line 274 of file QMCRun.h.
Referenced by calculateObservables(), and getTimeStepProperties().
The statistics for these walkers at this time step, using future walking.
Definition at line 280 of file QMCRun.h.
Referenced by calculateObservables(), getFWTimeStepProperties(), and initialize().
QMCInput* QMCRun::Input [private] |
Input data to control the calculation.
Definition at line 285 of file QMCRun.h.
Referenced by ack_reconfiguration(), branchWalkers(), calculateElectronDensities(), calculateObservables(), calculatePopulationSizeBiasCorrectionFactor(), getProperties(), initialize(), initializeFunction(), nonunitWeightBranching(), propagateWalkers(), randomlyInitializeWalkers(), readXML(), step(), toXML(), updateHFPotential(), and zeroOut().
double QMCRun::populationSizeBiasCorrectionFactor [private] |
A factor that is used in removing the bias introduced into a calculation by using a finite number of walkers.
The bias is only present in calculations that use branching.
Definition at line 292 of file QMCRun.h.
Referenced by calculateObservables(), calculatePopulationSizeBiasCorrectionFactor(), getPopulationSizeBiasCorrectionFactor(), QMCRun(), readXML(), and toXML().
queue<double> QMCRun::correctionDivisor [private] |
This queue is only used by calculatePopulationSizeBiasCorrectionFactor used to store the history of populationSizeBiasCorrectionFactor factors.
See UNR93 for more details.
Definition at line 299 of file QMCRun.h.
Referenced by calculatePopulationSizeBiasCorrectionFactor(), readXML(), and toXML().
int QMCRun::growthRate [private] |
Growth = Births - Deaths.
Definition at line 362 of file QMCRun.h.
Referenced by calculateObservables(), and step().
double QMCRun::max_pair_distance [private] |
The maximum distance between a pair of particles that will be recorded in the histograms.
Definition at line 368 of file QMCRun.h.
Referenced by calculateElectronDensities(), and initialize().
double QMCRun::dr [private] |
The size of a bin in the pair histograms.
Definition at line 373 of file QMCRun.h.
Referenced by calculateElectronDensities(), getdr(), and initialize().
Array1D<double> QMCRun::pllSpinHistogram [private] |
The histogram of distances between parallel spin electrons.
Definition at line 378 of file QMCRun.h.
Referenced by calculateElectronDensities(), getPllSpinHistogram(), and initialize().
Array1D<double> QMCRun::oppSpinHistogram [private] |
The histogram of distances between opposite spin electrons.
Definition at line 383 of file QMCRun.h.
Referenced by calculateElectronDensities(), getOppSpinHistogram(), and initialize().
Array1D< Array1D<double> > QMCRun::alphaHistograms [private] |
The alpha one electron density histograms.
There is one histogram for each unique nucleus.
Definition at line 389 of file QMCRun.h.
Referenced by calculateElectronDensities(), getAlphaHistograms(), and initialize().
Array1D< Array1D<double> > QMCRun::betaHistograms [private] |
The beta one electron density histograms.
There is one histogram for each unique nucleus.
Definition at line 395 of file QMCRun.h.
Referenced by calculateElectronDensities(), getBetaHistograms(), and initialize().
Array1D< Array1D<double> > QMCRun::pllxCorrelationDiagram [private] |
The 2D x coordinate parallel pair correlation diagram.
Definition at line 400 of file QMCRun.h.
Referenced by calculateElectronDensities(), getPllxCorrelationDiagram(), and initialize().
Array1D< Array1D<double> > QMCRun::pllyCorrelationDiagram [private] |
The 2D y coordinate parallel pair correlation diagram.
Definition at line 405 of file QMCRun.h.
Referenced by calculateElectronDensities(), getPllyCorrelationDiagram(), and initialize().
Array1D< Array1D<double> > QMCRun::pllzCorrelationDiagram [private] |
The 2D z coordinate parallel pair correlation diagram.
Definition at line 410 of file QMCRun.h.
Referenced by calculateElectronDensities(), getPllzCorrelationDiagram(), and initialize().
Array1D< Array1D<double> > QMCRun::oppxCorrelationDiagram [private] |
The 2D x coordinate opposite pair correlation diagram.
Definition at line 415 of file QMCRun.h.
Referenced by calculateElectronDensities(), getOppxCorrelationDiagram(), and initialize().
Array1D< Array1D<double> > QMCRun::oppyCorrelationDiagram [private] |
The 2D y coordinate opposite pair correlation diagram.
Definition at line 420 of file QMCRun.h.
Referenced by calculateElectronDensities(), getOppyCorrelationDiagram(), and initialize().
Array1D< Array1D<double> > QMCRun::oppzCorrelationDiagram [private] |
The 2D z coordinate opposite pair correlation diagram.
Definition at line 425 of file QMCRun.h.
Referenced by calculateElectronDensities(), getOppzCorrelationDiagram(), and initialize().
QMCHartreeFock QMCRun::HartreeFock [private] |
These objects allow HF calculations to be done with QMC.
Definition at line 430 of file QMCRun.h.
Referenced by initialize(), initializeFunction(), and updateHFPotential().