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