QMCPACK
CSVMC.h
Go to the documentation of this file.
1 //////////////////////////////////////////////////////////////////////////////////////
2 // This file is distributed under the University of Illinois/NCSA Open Source License.
3 // See LICENSE file in top directory for details.
4 //
5 // Copyright (c) 2016 Jeongnim Kim and QMCPACK developers.
6 //
7 // File developed by: Jeongnim Kim, jeongnim.kim@gmail.com, University of Illinois at Urbana-Champaign
8 // Jeremy McMinnis, jmcminis@gmail.com, University of Illinois at Urbana-Champaign
9 // Raymond Clay III, j.k.rofling@gmail.com, Lawrence Livermore National Laboratory
10 // Mark A. Berrill, berrillma@ornl.gov, Oak Ridge National Laboratory
11 //
12 // File created by: Jeongnim Kim, jeongnim.kim@gmail.com, University of Illinois at Urbana-Champaign
13 //////////////////////////////////////////////////////////////////////////////////////
14 
15 
16 /**@file CSVMC.h
17  * @brief Definition of CSVMC
18  */
19 #ifndef QMCPLUSPLUS_CS_VMCMULTIPLE_H
20 #define QMCPLUSPLUS_CS_VMCMULTIPLE_H
21 #include "QMCDrivers/QMCDriver.h"
23 namespace qmcplusplus
24 {
25 struct CSEnergyEstimator;
26 class CSUpdateBase;
27 
28 /** @ingroup QMCDrivers WalkerByWalker MultiplePsi
29  * @brief Implements the VMC algorithm using umbrella sampling.
30  *
31  * Energy difference method with multiple H/Psi.
32  * Consult S. Chiesa's note.
33  */
34 class CSVMC : public QMCDriver, public CloneManager
35 {
36 public:
37  /// Constructor.
38  CSVMC(const ProjectData& project_data,
40  TrialWaveFunction& psi,
41  QMCHamiltonian& h,
42  Communicate* comm);
43 
44  bool run() override;
45  bool put(xmlNodePtr cur) override;
46  QMCRunType getRunType() override { return QMCRunType::CSVMC; }
47 
48 private:
49  std::string UseDrift;
50  int prevSteps;
52  ///blocks over which normalization factors are accumulated
54  /// Copy Constructor (disabled)
55  CSVMC(const CSVMC&) = delete;
56  /// Copy operator (disabled).
57  CSVMC& operator=(const CSVMC&) = delete;
58 
59  void resetRun();
60 
61 
64 };
65 } // namespace qmcplusplus
66 
67 #endif
bool run() override
Run the CSVMC algorithm.
Definition: CSVMC.cpp:143
A set of walkers that are to be advanced by Metropolis Monte Carlo.
int equilBlocks
blocks over which normalization factors are accumulated
Definition: CSVMC.h:53
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
Manager clones for threaded applications.
Definition: CloneManager.h:34
CSVMC & operator=(const CSVMC &)=delete
Copy operator (disabled).
class ProjectData
Definition: ProjectData.h:36
int prevStepsBetweenSamples
Definition: CSVMC.h:51
Collection of Local Energy Operators.
abstract base class for QMC engines
Definition: QMCDriver.h:71
Wrapping information on parallelism.
Definition: Communicate.h:68
Declaration of QMCDriver.
CSUpdateBase * Mover
Definition: CSVMC.h:63
Implements the VMC algorithm using umbrella sampling.
Definition: CSVMC.h:34
CSEnergyEstimator * multiEstimator
Definition: CSVMC.h:62
Class to represent a many-body trial wave function.
CSVMC(const ProjectData &project_data, MCWalkerConfiguration &w, TrialWaveFunction &psi, QMCHamiltonian &h, Communicate *comm)
Constructor.
Definition: CSVMC.cpp:37
Manager class to handle multiple threads.
QMCRunType getRunType() override
Definition: CSVMC.h:46
bool put(xmlNodePtr cur) override
allocate internal data here before run() is called
Definition: CSVMC.cpp:58
std::string UseDrift
Definition: CSVMC.h:49