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_MWDISPATCHERS_H
14 #define QMCPLUSPLUS_MWDISPATCHERS_H
15 
16 #include <PSdispatcher.h>
17 #include <TWFdispatcher.h>
18 #include <Hdispatcher.h>
19 
20 namespace qmcplusplus
21 {
22 // forward declaration
23 class TWFdispatcher;
24 class Hdispatcher;
25 
26 class MultiWalkerDispatchers
27 {
28 public:
29 
MultiWalkerDispatchers(bool use_batch)30   MultiWalkerDispatchers(bool use_batch) : ps_dispatcher_(use_batch), twf_dispatcher_(use_batch), ham_dispatcher_(use_batch), use_batch_(use_batch) {}
31 
are_walkers_batched()32   bool are_walkers_batched() const { return use_batch_; }
33 
34   const PSdispatcher ps_dispatcher_;
35   const TWFdispatcher twf_dispatcher_;
36   const Hdispatcher ham_dispatcher_;
37 private:
38   const bool use_batch_;
39 };
40 }
41 #endif
42