QMCPACK
RMCUpdatePbyP.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 // Raymond Clay III, j.k.rofling@gmail.com, Lawrence Livermore National Laboratory
9 // Mark A. Berrill, berrillma@ornl.gov, Oak Ridge National Laboratory
10 //
11 // File created by: Jeremy McMinnis, jmcminis@gmail.com, University of Illinois at Urbana-Champaign
12 //////////////////////////////////////////////////////////////////////////////////////
13 
14 
15 #ifndef QMCPLUSPLUS_RMC_PARTICLEBYPARTICLE_UPDATE_H
16 #define QMCPLUSPLUS_RMC_PARTICLEBYPARTICLE_UPDATE_H
18 
19 namespace qmcplusplus
20 {
21 /** @ingroup QMCDrivers ParticleByParticle
22  *@brief Implements the RMC algorithm using all electron moves
23  */
25 {
26 public:
27  /// Constructor.
29  TrialWaveFunction& psi,
30  QMCHamiltonian& h,
32  std::vector<int> act,
33  std::vector<int> tp);
34  ~RMCUpdatePbyPWithDrift() override;
35 
36  enum
37  {
40  };
41 
42  void advanceWalkersVMC();
43  void advanceWalkersRMC();
44  void advanceWalker(Walker_t& thisWalker, bool recompute) override;
45  void advanceWalkers(WalkerIter_t it, WalkerIter_t it_end, bool measure) override;
46  void initWalkersForPbyP(WalkerIter_t it, WalkerIter_t it_end) override;
47  void initWalkers(WalkerIter_t it, WalkerIter_t it_end) override;
48  void accumulate(WalkerIter_t it, WalkerIter_t it_end);
49 
50  bool put(xmlNodePtr cur) override;
51 
52 private:
53  /// Copy Constructor (disabled)
55  /// Copy operator (disabled).
57 
58  std::vector<int> Action, TransProb;
59  bool scaleDrift;
61 
66 
71 };
72 
73 
74 } // namespace qmcplusplus
75 
76 #endif
Base class for update methods for each step.
Definition: QMCUpdateBase.h:41
A set of walkers that are to be advanced by Metropolis Monte Carlo.
MCWalkerConfiguration::iterator WalkerIter_t
Definition: QMCUpdateBase.h:45
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
Collection of Local Energy Operators.
MCWalkerConfiguration::Walker_t Walker_t
Definition: QMCUpdateBase.h:44
Timer accumulates time and call counts.
Definition: NewTimer.h:135
void accumulate(WalkerIter_t it, WalkerIter_t it_end)
RMCUpdatePbyPWithDrift(MCWalkerConfiguration &w, TrialWaveFunction &psi, QMCHamiltonian &h, RandomBase< FullPrecRealType > &rg, std::vector< int > act, std::vector< int > tp)
Constructor.
OHMMS_INDEXTYPE IndexType
define other types
Definition: Configuration.h:65
void advanceWalker(Walker_t &thisWalker, bool recompute) override
move a walker
Implements the RMC algorithm using all electron moves
Definition: RMCUpdatePbyP.h:24
Class to represent a many-body trial wave function.
void initWalkers(WalkerIter_t it, WalkerIter_t it_end) override
initialize Walker for walker update
void initWalkersForPbyP(WalkerIter_t it, WalkerIter_t it_end) override
initialize Walker buffers for PbyP update
bool put(xmlNodePtr cur) override
process options
Declare QMCUpdateBase class.
RMCUpdatePbyPWithDrift & operator=(const RMCUpdatePbyPWithDrift &)=delete
Copy operator (disabled).
void advanceWalkers(WalkerIter_t it, WalkerIter_t it_end, bool measure) override
advance walkers executed at each step