1 #ifndef QMCPLUSPLUS_DRIVERTRAITS_H
2 #define QMCPLUSPLUS_DRIVERTRAITS_H
3 
4 namespace qmcplusplus
5 {
6 /*! enum for QMC Run Type */
7 enum class QMCRunType
8 {
9   DUMMY, /*!< dummy */
10   VMC,   /**< VMC type: vmc, vmc-ptcl, vmc-multiple, vmc-ptcl-multiple */
11   CSVMC,
12   DMC,      /**< DMC type: dmc, dmc-ptcl*/
13   RMC,      /**< RMC type: rmc, rmc-ptcl */
14   OPTIMIZE, /*!< Optimization */
15   VMC_OPT,  /*!< Optimization with vmc blocks */
16   LINEAR_OPTIMIZE,
17   CS_LINEAR_OPTIMIZE,
18   WF_TEST,
19   VMC_BATCH,
20   DMC_BATCH,
21   OPTIMIZE_BATCH,
22   LINEAR_OPTIMIZE_BATCH
23 };
24 
25 /** enum to set the bit to determine the QMC mode
26  *
27  *  Can't be a scoped enum, unsafe out in qmcplusplus scope
28  */
29 enum QMCModeEnum
30 {
31   UPDATE_MODE,    /**< bit for move: walker or pbyp */
32   MULTIPLE_MODE,  /**< bit for multple configuration */
33   SPACEWARP_MODE, /**< bit for space-warping */
34   ALTERNATE_MODE, /**< bit for performing various analysis and weird qmc methods */
35   GPU_MODE,       /**< bit to use GPU driver */
36   QMC_MODE_MAX = 8
37 };
38 
39 } // namespace qmcplusplus
40 #endif
41