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) 2019 QMCPACK developers.
6 //
7 // File developed by: Peter Doak, doakpw@ornl.gov, Oak Ridge National Lab
8 //
9 // File created by: Peter Doak, doakpw@ornl.gov, Oak Ridge National Lab
10 //////////////////////////////////////////////////////////////////////////////////////
11 #ifndef QMCPLUSPLUS_WALKERPROPERTIES_H
12 #define QMCPLUSPLUS_WALKERPROPERTIES_H
13 
14 #include <cstdint>
15 #include "config.h"
16 
17 namespace qmcplusplus
18 {
19 struct WalkerProperties
20 {
21   /** an enum denoting index of physical properties
22  *
23  * \todo: this enum and the handling of "Properties" through the class hierarchy
24  * is hot garbage. Replace, for now we're just making it safe.
25  *
26  * LOCALPOTENTIAL being defined last of the Walker "Properties" is special there
27  * is likely to be some code lurking that depends on it. Keep until this mess is removed.
28 
29  * Believe it or not,you need to modify ParticleSet::initPropertyList to match the walker enum if you add to it.
30  * _Don't_, actually work on fixing this.
31  */
32   enum Indexes : int16_t
33   {
34     LOGPSI = 0,      /*!< log(std::abs(psi)) instead of square of the many-body wavefunction \f$|\Psi|^2\f$ */
35     SIGN,            /*!< value of the many-body wavefunction \f$\Psi(\{R\})\f$ */
36     UMBRELLAWEIGHT,  /*!< sum of wavefunction ratios for multiple H and Psi */
37     R2ACCEPTED,      /*!< r^2 for accepted moves */
38     R2PROPOSED,      /*!< r^2 for proposed moves */
39     DRIFTSCALE,      /*!< scaling value for the drift */
40     ALTERNATEENERGY, /*!< alternatelocal energy, the sum of all the components */
41     LOCALENERGY,     /*!< local energy, the sum of all the components */
42     LOCALPOTENTIAL,  /*!< local potential energy = local energy - kinetic energy */
43     NUMPROPERTIES,
44     MAXPROPERTIES = WALKER_MAX_PROPERTIES /*!< the number of properties */
45   };
46 };
47 } // namespace qmcplusplus
48 
49 #endif /* QMCPLUSPLUS_WALKERPROPERTIES_H */
50