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) 2020 QMCPACK developers.
6 //
7 // File developed by: Cody A. Melton, cmelton@sandia.gov, Sandia National Laboratories
8 //
9 // File created by: Cody A. Melton, cmelton@sandia.gov, Sandia National Laboratories
10 //////////////////////////////////////////////////////////////////////////////////////
11 
12 
13 #ifndef QMCPLUSPLUS_SOVMC_PARTICLEBYPARTICLE_UPDATE_H
14 #define QMCPLUSPLUS_SOVMC_PARTICLEBYPARTICLE_UPDATE_H
15 #include "QMCDrivers/QMCUpdateBase.h"
16 
17 namespace qmcplusplus
18 {
19 /** @ingroup QMCDrivers  ParticleByParticle
20  *@brief Implements the VMC algorithm using particle-by-particle move, including spin-moves
21  */
22 class SOVMCUpdatePbyP : public QMCUpdateBase
23 {
24 public:
25   /// Constructor.
26   SOVMCUpdatePbyP(MCWalkerConfiguration& w, TrialWaveFunction& psi, QMCHamiltonian& h, RandomGenerator_t& rg);
27 
28   ~SOVMCUpdatePbyP();
29 
30   void advanceWalker(Walker_t& thisWalker, bool recompute);
31 
32 private:
33   NewTimer& buffer_timer_;
34   NewTimer& movepbyp_timer_;
35   NewTimer& hamiltonian_timer_;
36   NewTimer& collectables_timer_;
37 };
38 
39 } // namespace qmcplusplus
40 
41 #endif
42