QMCPACK
DMCDriverInput.h
Go to the documentation of this file.
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) 2020 QMCPACK developers.
6 //
7 // File developed by: Peter Doak, doakpw@ornl.gov, Oak Ridge National Laboratory
8 //
9 // File created by: Peter Doak, doakpw@ornl.gov, Oak Ridge National Laboratory
10 //////////////////////////////////////////////////////////////////////////////////////
11 
12 #ifndef QMCPLUSPLUS_DMCDRIVERINPUT_H
13 #define QMCPLUSPLUS_DMCDRIVERINPUT_H
14 
15 #include "Configuration.h"
16 #include "OhmmsData/ParameterSet.h"
17 #include "DMC/DMCRefEnergyScheme.h"
18 
19 namespace qmcplusplus
20 {
21 /** Input representation for DMC driver class runtime parameters
22  */
24 {
25 public:
30  DMCDriverInput(int walkers_per_rank);
31  void readXML(xmlNodePtr xml_input);
32 
33  bool get_reconfiguration() const { return reconfiguration_; }
34  IndexType get_max_age() const { return max_age_; }
36  double get_feedback() const { return feedback_; }
38  const std::string& get_non_local_move() const { return NonLocalMove; }
39  double get_alpha() const { return alpha_; }
40  double get_gamma() const { return gamma_; }
41  RealType get_reserve() const { return reserve_; }
42 
43 private:
44  /** @ingroup Parameters for DMC Driver
45  * @{
46  *
47  * Do not write out blocks of gets for variables like this
48  * there is are code_generation tools in QMCPACK_ROOT/utils/code_tools
49  */
50  ///Interval between branching
52  ///feed back parameter for population control
53  double feedback_ = 1.0;
54  ///input std::string to determine reference energy update scheme
56  ///input std::string to determine kill walkers or not
57  std::string KillWalker;
58  ///input std::string to determine swap walkers among mpi processors
59  std::string SwapWalkers;
60  /// reconfiguration flag
61  bool reconfiguration_ = true;
62  ///input std::string to determine to use nonlocal move
63  std::string NonLocalMove;
64  ///input to control maximum age allowed for walkers.
66  /// reserved walkers for population growth
68  double alpha_ = 0.0;
69  double gamma_ = 0.0;
70  /** @} */
71 public:
72  friend std::ostream& operator<<(std::ostream& o_stream, const DMCDriverInput& vmci);
73 };
74 
75 extern std::ostream& operator<<(std::ostream& o_stream, const DMCDriverInput& vmci);
76 
77 } // namespace qmcplusplus
78 #endif
RealType reserve_
reserved walkers for population growth
double feedback_
feed back parameter for population control
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
QTBase::RealType RealType
Definition: Configuration.h:58
DMCRefEnergyScheme get_refenergy_update_scheme() const
RealType get_reserve() const
QMCTraits::FullPrecRealType FullPrecisionRealType
const std::string & get_non_local_move() const
IndexType branch_interval_
Do not write out blocks of gets for variables like this there is are code_generation tools in QMCPA...
DMCRefEnergyScheme refenergy_update_scheme_
input std::string to determine reference energy update scheme
bool reconfiguration_
reconfiguration flag
IndexType max_age_
input to control maximum age allowed for walkers.
std::string KillWalker
input std::string to determine kill walkers or not
Input representation for DMC driver class runtime parameters.
IndexType get_max_age() const
QMCTraits::IndexType IndexType
std::string SwapWalkers
input std::string to determine swap walkers among mpi processors
std::ostream & operator<<(std::ostream &out, const AntiSymTensor< T, D > &rhs)
std::string NonLocalMove
input std::string to determine to use nonlocal move
OHMMS_INDEXTYPE IndexType
define other types
Definition: Configuration.h:65
IndexType get_branch_interval() const
DMCRefEnergyScheme
DMCRefEnergy schemes.
QTFull::RealType FullPrecRealType
Definition: Configuration.h:66
friend std::ostream & operator<<(std::ostream &o_stream, const DMCDriverInput &vmci)
QMCTraits::RealType RealType
void readXML(xmlNodePtr xml_input)