QMCPACK
RMCUpdateAll.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 //
10 // File created by: Jeremy McMinnis, jmcminis@gmail.com, University of Illinois at Urbana-Champaign
11 //////////////////////////////////////////////////////////////////////////////////////
12 
13 
14 #ifndef QMCPLUSPLUS_RMC_UPDATEALL_H
15 #define QMCPLUSPLUS_RMC_UPDATEALL_H
17 
18 namespace qmcplusplus
19 {
20 /** @ingroup QMCDrivers ParticleByParticle
21  *@brief Implements the RMC algorithm using all electron moves
22  */
24 {
25 public:
26  /// Constructor.
27 
28  enum
29  {
32  };
33 
35  TrialWaveFunction& psi,
36  QMCHamiltonian& h,
38  std::vector<int> act,
39  std::vector<int> tp);
40  ~RMCUpdateAllWithDrift() override;
41  void advanceWalker(Walker_t& thisWalker, bool recompute) override;
42  void advanceWalkers(WalkerIter_t it, WalkerIter_t it_end, bool measure) override;
43  void advanceWalkersVMC();
44  void advanceWalkersRMC();
45  void checkReptile(WalkerIter_t it, WalkerIter_t it_end);
46  void initWalkers(WalkerIter_t it, WalkerIter_t it_end) override;
47 
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 
60  bool scaleDrift;
62 
67 };
68 
69 
70 } // namespace qmcplusplus
71 
72 #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
void accumulate(WalkerIter_t it, WalkerIter_t it_end)
RMCUpdateAllWithDrift(MCWalkerConfiguration &w, TrialWaveFunction &psi, QMCHamiltonian &h, RandomBase< FullPrecRealType > &rg, std::vector< int > act, std::vector< int > tp)
Constructor.
Implements the RMC algorithm using all electron moves
Definition: RMCUpdateAll.h:23
OHMMS_INDEXTYPE IndexType
define other types
Definition: Configuration.h:65
void advanceWalker(Walker_t &thisWalker, bool recompute) override
move a walker
void checkReptile(WalkerIter_t it, WalkerIter_t it_end)
Class to represent a many-body trial wave function.
void initWalkers(WalkerIter_t it, WalkerIter_t it_end) override
initialize Walker for walker update
RMCUpdateAllWithDrift & operator=(const RMCUpdateAllWithDrift &)=delete
Copy operator (disabled).
bool put(xmlNodePtr cur) override
process options
Declare QMCUpdateBase class.
void advanceWalkers(WalkerIter_t it, WalkerIter_t it_end, bool measure) override
advance walkers executed at each step