QMCPACK
Hdispatcher.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) 2021 QMCPACK developers.
6 //
7 // File developed by: Ye Luo, yeluo@anl.gov, Argonne National Laboratory
8 //
9 // File created by: Ye Luo, yeluo@anl.gov, Argonne National Laboratory
10 //////////////////////////////////////////////////////////////////////////////////////
11 
12 
13 #ifndef QMCPLUSPLUS_HDISPATCH_H
14 #define QMCPLUSPLUS_HDISPATCH_H
15 
16 #include "QMCHamiltonian.h"
17 
18 namespace qmcplusplus
19 {
20 /** Wrappers for dispatching to QMCHamiltonian single walker APIs or mw_ APIs.
21  * This should be only used by QMC drivers.
22  * member function names must match mw_ APIs in QMCHamiltonian
23  */
25 {
26 public:
28 
29  Hdispatcher(bool use_batch);
30 
31  std::vector<FullPrecRealType> flex_evaluate(const RefVectorWithLeader<QMCHamiltonian>& ham_list,
33  const RefVectorWithLeader<ParticleSet>& p_list) const;
34 
35  std::vector<FullPrecRealType> flex_evaluateWithToperator(const RefVectorWithLeader<QMCHamiltonian>& ham_list,
37  const RefVectorWithLeader<ParticleSet>& p_list) const;
38 
39  std::vector<int> flex_makeNonLocalMoves(const RefVectorWithLeader<QMCHamiltonian>& ham_list,
41  const RefVectorWithLeader<ParticleSet>& p_list) const;
42 
43 private:
44  bool use_batch_;
45 };
46 } // namespace qmcplusplus
47 
48 #endif
std::vector< FullPrecRealType > flex_evaluate(const RefVectorWithLeader< QMCHamiltonian > &ham_list, const RefVectorWithLeader< TrialWaveFunction > &wf_list, const RefVectorWithLeader< ParticleSet > &p_list) const
Definition: Hdispatcher.cpp:22
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
QMCTraits::FullPrecRealType FullPrecRealType
std::vector< FullPrecRealType > flex_evaluateWithToperator(const RefVectorWithLeader< QMCHamiltonian > &ham_list, const RefVectorWithLeader< TrialWaveFunction > &wf_list, const RefVectorWithLeader< ParticleSet > &p_list) const
Definition: Hdispatcher.cpp:39
std::vector< int > flex_makeNonLocalMoves(const RefVectorWithLeader< QMCHamiltonian > &ham_list, const RefVectorWithLeader< TrialWaveFunction > &wf_list, const RefVectorWithLeader< ParticleSet > &p_list) const
Definition: Hdispatcher.cpp:56
Hdispatcher(bool use_batch)
Definition: Hdispatcher.cpp:19
QMCHamiltonian::FullPrecRealType FullPrecRealType
Definition: Hdispatcher.h:27
Wrappers for dispatching to QMCHamiltonian single walker APIs or mw_ APIs.
Definition: Hdispatcher.h:24
Declaration of QMCHamiltonian.