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