QMCPACK
VMC.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: Jeremy McMinnis, jmcminis@gmail.com, University of Illinois at Urbana-Champaign
8 // Jeongnim Kim, jeongnim.kim@gmail.com, University of Illinois at Urbana-Champaign
9 // Mark A. Berrill, berrillma@ornl.gov, Oak Ridge National Laboratory
10 //
11 // File created by: Jeongnim Kim, jeongnim.kim@gmail.com, University of Illinois at Urbana-Champaign
12 //////////////////////////////////////////////////////////////////////////////////////
13 
14 
15 #ifndef QMCPLUSPLUS_VMC_H
16 #define QMCPLUSPLUS_VMC_H
17 #include "QMCDrivers/QMCDriver.h"
19 namespace qmcplusplus
20 {
21 /** @ingroup QMCDrivers ParticleByParticle
22  * @brief Implements a VMC using particle-by-particle move. Threaded execution.
23  */
24 class VMC : public QMCDriver, public CloneManager
25 {
26 public:
27  /// Constructor.
30  TrialWaveFunction& psi,
31  QMCHamiltonian& h,
34  bool enable_profiling);
35  bool run() override;
36  bool put(xmlNodePtr cur) override;
37  QMCRunType getRunType() override { return QMCRunType::VMC; }
38 
39 private:
40  int prevSteps;
42 
43  ///option to enable/disable drift equation or RN for VMC
44  std::string UseDrift;
45  //
47  ///check the run-time environments
48  void resetRun();
49  ///copy constructor
50  VMC(const VMC&) = delete;
51  /// Copy operator (disabled).
52  VMC& operator=(const VMC&) = delete;
53 };
54 } // namespace qmcplusplus
55 
56 #endif
bool run() override
Definition: VMC.cpp:60
A set of walkers that are to be advanced by Metropolis Monte Carlo.
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
Manager clones for threaded applications.
Definition: CloneManager.h:34
int prevSteps
Definition: VMC.h:40
class ProjectData
Definition: ProjectData.h:36
int prevStepsBetweenSamples
Definition: VMC.h:41
Implements a VMC using particle-by-particle move.
Definition: VMC.h:24
Collection of Local Energy Operators.
std::vector< std::unique_ptr< T > > UPtrVector
abstract base class for QMC engines
Definition: QMCDriver.h:71
UPtrVector< RandomBase< QMCTraits::FullPrecRealType > > & rngs_
Definition: VMC.h:46
Wrapping information on parallelism.
Definition: Communicate.h:68
VMC(const ProjectData &project_data_, MCWalkerConfiguration &w, TrialWaveFunction &psi, QMCHamiltonian &h, UPtrVector< RandomBase< QMCTraits::FullPrecRealType >> &rngs, Communicate *comm, bool enable_profiling)
Constructor.
Definition: VMC.cpp:40
Declaration of QMCDriver.
VMC & operator=(const VMC &)=delete
Copy operator (disabled).
void resetRun()
check the run-time environments
Definition: VMC.cpp:153
Class to represent a many-body trial wave function.
Manager class to handle multiple threads.
const ProjectData & project_data_
top-level project data information
Definition: QMCDriver.h:216
QMCRunType getRunType() override
Definition: VMC.h:37
bool put(xmlNodePtr cur) override
Definition: VMC.cpp:298
VMC type: vmc, vmc-ptcl, vmc-multiple, vmc-ptcl-multiple.
std::string UseDrift
option to enable/disable drift equation or RN for VMC
Definition: VMC.h:44