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