13 #ifndef QMCPLUSPLUS_SIMPLE_FIXEDNODE_BRANCH_H 14 #define QMCPLUSPLUS_SIMPLE_FIXEDNODE_BRANCH_H 144 template<
typename PAR_ENUM>
145 struct VParams :
public std::array<FullPrecRealType, static_cast<size_t>(PAR_ENUM::VPARAM_MAX)>
147 using Base = std::array<FullPrecRealType, static_cast<size_t>(PAR_ENUM::VPARAM_MAX)>;
164 #if defined(QMC_COMPLEX) 167 return std::cos(psi0) < std::numeric_limits<RealType>::epsilon();
212 RealType driftaction = -0.5 * (logGf + logGb);
220 RealType energyaction = taueff_ * (enew + eold);
221 return driftaction + energyaction;
226 RealType driftaction = -0.5 * (logGf + logGb);
228 RealType energyaction = taueff_ * (enew + eold);
230 return driftaction + energyaction;
241 return taueff_ * (enew + eold);
283 bool put(xmlNodePtr cur);
int initParam(const MCPopulation &population, FullPrecRealType ene, FullPrecRealType var, bool fixW, bool killwalker)
initialize branching parameters
HamiltonianRef::FullPrecRealType FullPrecRealType
helper functions for EinsplineSetBuilder
Manages the state of QMC sections and handles population control for DMCs.
FullPrecRealType & operator[](PAR_ENUM sbvp)
RealType branchWeight(RealType enew, RealType eold, RealType scnew, RealType scold, RealType p) const
return the branch weight according to JCP1993 Umrigar et al.
void printStatus() const
finalize the simulation
void updateParamAfterPopControl(const MCDataType< FullPrecRealType > &wc_ensemble_prop, int Nelec)
perform branching
RealType getTauEff() const
std::bitset< B_MODE_MAX > BranchModeType
Handle updating Eref used for calculating the trial energy.
int WarmUpToDoSteps
number of remaning steps in warmup, [0, iParam[B_WARMUPSTEPS]]
int getWarmupToDoSteps() const
BranchModeType BranchMode
RealType branchWeightBare(RealType enew, RealType eold) const
return the bare branch weight
MakeReturn< UnaryNode< FnCos, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t cos(const Vector< T1, C1 > &l)
DMCRefEnergy ref_energy_collector
collect energy and variance history
class to handle a set of parameters
SimpleBranchVectorParameter
enum for vParam
bool put(xmlNodePtr cur)
Parse the xml file for parameters.
RealType DMCLinkAction(RealType enew, RealType eold) const
RealType symLinkActionBare(RealType logGf, RealType logGb, RealType enew, RealType eold) const
void advanceQMCCounter()
increment QMCCounter
std::ostream & operator<<(std::ostream &out, const AntiSymTensor< T, D > &rhs)
controlling parameters of full precision real type
xmlNodePtr myNode
save xml element
RealType symLinkAction(RealType logGf, RealType logGb, RealType enew, RealType eold) const
MakeReturn< UnaryNode< FnExp, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t exp(const Vector< T1, C1 > &l)
accumulator_set< RealType > R2Accepted
a simple accumulator for energy
Define a accumulator whose average is evaluated for a moving block of a fixed steps.
SFNBranch(RealType tau, RealType feedback, DMCRefEnergyScheme)
Constructor.
friend std::ostream & operator<<(std::ostream &os, SFNBranch::VParamType &rhs)
void setBranchCutoff(FullPrecRealType variance, FullPrecRealType targetSigma, FullPrecRealType maxSigma, int Nelec=0)
set branch cutoff, max, filter
1 for dmc, 0 for anything else
ParameterSet m_param
set of parameters
interval between branch, see population control
std::array< FullPrecRealType, static_cast< size_t >(SBVP ::VPARAM_MAX)> Base
DMCRefEnergyScheme
DMCRefEnergy schemes.
int EtrialUpdateToDoSteps
number of remaning steps in before adjusting ETRIAL, [0, iParam[B_ENERGYUPDATEINTERVAL]] ...
1 for rmc, 0 for anything else
RealType branchWeight(FullPrecRealType enew, FullPrecRealType eold) const
return the bare branch weight with a filtering using an energy window
counter for tracking object state
accumulator_set< RealType > R2Center
a simple accumulator for reptation's center slice
QTFull::RealType FullPrecRealType
1 to use taueff accordning to JCP 93, 0 to use tau
warmup steps, valid when BranchMode[D_DMCSTAGE] == 0
target total number of walkers per mpi group
std::string branching_cutoff_scheme
scheme of branching cutoff
void registerParameters()
create map between the parameter name and variables
A container class to represent a walker.
bool phaseChanged(RealType psi0) const
RealType getEtrial() const
frequency of the trial energy updates, default 1
accumulator_set< RealType > R2Proposed
a simple accumulator for energy
RealType branchWeight(RealType enew, RealType eold, RealType scnew, RealType scold) const
return the branch weight according to JCP1993 Umrigar et al.
Define and declare accumulator_set.
1 to kill walkers when a node crossing is detected
1 for the standard dmc, 0 for the comb method
const FullPrecRealType & operator[](PAR_ENUM sbvp) const
std::vector< std::string > sParam
string parameters