QMCPACK
QMCUpdateBase Class Referenceabstract

Base class for update methods for each step. More...

+ Inheritance diagram for QMCUpdateBase:
+ Collaboration diagram for QMCUpdateBase:

Public Types

using Walker_t = MCWalkerConfiguration::Walker_t
 
using WalkerIter_t = MCWalkerConfiguration::iterator
 
using BranchEngineType = SimpleFixedNodeBranch
 
using mPosType = PosType
 
using mTensorType = TensorType
 
- Public Types inherited from QMCTraits
enum  { DIM = OHMMS_DIM, DIM_VGL = OHMMS_DIM + 2 }
 
using QTBase = QMCTypes< OHMMS_PRECISION, DIM >
 
using QTFull = QMCTypes< OHMMS_PRECISION_FULL, DIM >
 
using RealType = QTBase::RealType
 
using ComplexType = QTBase::ComplexType
 
using ValueType = QTBase::ValueType
 
using PosType = QTBase::PosType
 
using GradType = QTBase::GradType
 
using TensorType = QTBase::TensorType
 
using IndexType = OHMMS_INDEXTYPE
 define other types More...
 
using FullPrecRealType = QTFull::RealType
 
using FullPrecValueType = QTFull::ValueType
 
using PropertySetType = RecordNamedProperty< FullPrecRealType >
 define PropertyList_t More...
 
using PtclGrpIndexes = std::vector< std::pair< int, int > >
 

Public Member Functions

 QMCUpdateBase (MCWalkerConfiguration &w, TrialWaveFunction &psi, QMCHamiltonian &h, RandomBase< FullPrecRealType > &rg)
 Constructor. More...
 
 QMCUpdateBase (MCWalkerConfiguration &w, TrialWaveFunction &psi, TrialWaveFunction &guide, QMCHamiltonian &h, RandomBase< FullPrecRealType > &rg)
 Alt Constructor. More...
 
virtual ~QMCUpdateBase ()
 destructor More...
 
RealType acceptRatio () const
 
void resetRun (BranchEngineType *brancher, EstimatorManagerBase *est, TraceManager *traces, const DriftModifierBase *driftmodifer)
 reset the QMCUpdateBase parameters More...
 
void resetRun2 (BranchEngineType *brancher, EstimatorManagerBase *est, TraceManager *traces, WalkerLogCollector *wlog_collector_, const DriftModifierBase *driftmodifer)
 
RealType getTau ()
 
void setTau (RealType t)
 
RealType getSpinMass ()
 
void setSpinMass (RealType m)
 
void getLogs (std::vector< RealType > &logs)
 
void set_step (int step)
 
void startRun (int blocks, bool record)
 start a run More...
 
void stopRun ()
 stop a run More...
 
void stopRun2 ()
 
void startBlock (int steps)
 prepare to start a block More...
 
void stopBlock (bool collectall=true)
 stop a block More...
 
void setMultiplicity (WalkerIter_t it, WalkerIter_t it_end)
 set the multiplicity of the walkers to branch More...
 
void setMultiplicity (Walker_t &awalker) const
 
virtual void initWalkersForPbyP (WalkerIter_t it, WalkerIter_t it_end)
 initialize Walker buffers for PbyP update More...
 
virtual void initWalkers (WalkerIter_t it, WalkerIter_t it_end)
 initialize Walker for walker update More...
 
virtual bool put (xmlNodePtr cur)
 process options More...
 
void accumulate (WalkerIter_t it, WalkerIter_t it_end)
 
virtual void advanceWalkers (WalkerIter_t it, WalkerIter_t it_end, bool recompute)
 advance walkers executed at each step More...
 
virtual void advanceWalker (Walker_t &thisWalker, bool recompute)=0
 move a walker More...
 
virtual RealType advanceWalkerForEE (Walker_t &w1, std::vector< PosType > &dR, std::vector< int > &iats, std::vector< int > &rs, std::vector< RealType > &ratios)
 
int RMC_checkIndex (int N, int NMax)
 
void RMC_checkWalkerBounds (WalkerIter_t &it, WalkerIter_t first, WalkerIter_t last)
 
RealType logBackwardGF (const ParticleSet::ParticlePos &displ)
 

Public Attributes

int nSubSteps
 number of steps per measurement More...
 
DriverDebugChecks debug_checks_ = DriverDebugChecks::ALL_OFF
 determine additional checks for debugging purpose More...
 
std::string debug_checks_str_
 
IndexType MaxAge
 MaxAge>0 indicates branch is done. More...
 
IndexType nAccept
 counter for number of moves accepted More...
 
IndexType nReject
 counter for number of moves rejected More...
 
IndexType nAllRejected
 Total number of the steps when all the particle moves are rejected. More...
 
IndexType nNodeCrossing
 Total number of node crossings per block. More...
 
IndexType NonLocalMoveAccepted
 Total numer of non-local moves accepted. More...
 
RealType Tau
 timestep More...
 
RealType spinMass
 spin mass More...
 
bool UseDrift
 use Drift More...
 
RealType csoffset
 normalization offset for cs type runs. More...
 
TraceManagerTraces
 traces More...
 
WalkerLogCollectorwlog_collector
 

Protected Member Functions

RealType getNodeCorrection (const ParticleSet::ParticleGradient &g, ParticleSet::ParticlePos &gscaled)
 evaluate the ratio of scaled velocity and velocity More...
 
 QMCUpdateBase (const QMCUpdateBase &)=delete
 copy constructor (disabled) More...
 

Static Protected Member Functions

static void checkLogAndGL (ParticleSet &pset, TrialWaveFunction &twf, const std::string_view location)
 check logpsi and grad and lap against values computed from scratch More...
 

Protected Attributes

bool UpdatePbyP
 update particle-by-particle More...
 
IndexType NumPtcl
 number of particles More...
 
RealType m_oneover2tau
 Time-step factor $ 1/(2\tau)$. More...
 
RealType m_sqrttau
 Time-step factor $ \sqrt{\tau}$. More...
 
RealType m_tauovermass
 tau/mass More...
 
RealType m_r2max
 maximum displacement^2 More...
 
MCWalkerConfigurationW
 walker ensemble More...
 
TrialWaveFunctionPsi
 trial function More...
 
TrialWaveFunctionGuide
 guide function More...
 
QMCHamiltonianH
 Hamiltonian. More...
 
RandomBase< FullPrecRealType > & RandomGen
 random number generator More...
 
const BranchEngineTypebranchEngine
 branch engine, stateless reference to the one in QMCDriver More...
 
const DriftModifierBaseDriftModifier
 drift modifer, stateless reference to the one in QMCDriver More...
 
EstimatorManagerBaseEstimators
 estimator More...
 
ParameterSet myParams
 parameters More...
 
std::vector< RealTypeMassInvS
 1/Mass per species More...
 
std::vector< RealTypeMassInvP
 1/Mass per particle More...
 
std::vector< RealTypeSqrtTauOverMass
 sqrt(tau/Mass) per particle More...
 
ParticleSet::ParticlePos drift
 temporary storage for drift More...
 
ParticleSet::ParticlePos deltaR
 temporary storage for random displacement More...
 
ParticleSet::ParticleScalar deltaS
 temporart storage for spin displacement More...
 
ParticleSet::ParticleGradient G
 storage for differential gradients for PbyP update More...
 
ParticleSet::ParticleGradient dG
 
ParticleSet::ParticleLaplacian L
 storage for differential laplacians for PbyP update More...
 
ParticleSet::ParticleLaplacian dL
 

Private Member Functions

void setDefaults ()
 set default parameters More...
 
QMCUpdateBaseoperator= (const QMCUpdateBase &)
 Copy operator (disabled). More...
 

Private Attributes

NewTimerinitWalkers_timer_
 

Detailed Description

Base class for update methods for each step.

QMCUpdateBase provides the common functions to update all the walkers for each time step. Derived classes should implement advanceWalkers to complete a step.

Definition at line 41 of file QMCUpdateBase.h.

Member Typedef Documentation

◆ BranchEngineType

Definition at line 46 of file QMCUpdateBase.h.

◆ mPosType

using mPosType = PosType

Definition at line 51 of file QMCUpdateBase.h.

◆ mTensorType

Definition at line 52 of file QMCUpdateBase.h.

◆ Walker_t

Definition at line 44 of file QMCUpdateBase.h.

◆ WalkerIter_t

Definition at line 45 of file QMCUpdateBase.h.

Constructor & Destructor Documentation

◆ QMCUpdateBase() [1/3]

Constructor.

Definition at line 56 of file QMCUpdateBase.cpp.

References QMCUpdateBase::setDefaults().

60  : csoffset(0),
61  Traces(0),
62  wlog_collector(0),
63  W(w),
64  Psi(psi),
65  Guide(psi),
66  H(h),
67  RandomGen(rg),
68  branchEngine(0),
69  DriftModifier(0),
70  Estimators(0),
71  initWalkers_timer_(createGlobalTimer("QMCUpdateBase::WalkerInit", timer_level_medium))
72 {
73  setDefaults();
74 }
TraceManager * Traces
traces
const BranchEngineType * branchEngine
branch engine, stateless reference to the one in QMCDriver
WalkerLogCollector * wlog_collector
TrialWaveFunction & Psi
trial function
EstimatorManagerBase * Estimators
estimator
NewTimer & createGlobalTimer(const std::string &myname, timer_levels mylevel)
TrialWaveFunction & Guide
guide function
MCWalkerConfiguration & W
walker ensemble
void setDefaults()
set default parameters
RealType csoffset
normalization offset for cs type runs.
RandomBase< FullPrecRealType > & RandomGen
random number generator
QMCHamiltonian & H
Hamiltonian.
const DriftModifierBase * DriftModifier
drift modifer, stateless reference to the one in QMCDriver

◆ QMCUpdateBase() [2/3]

Alt Constructor.

Constructor.

Definition at line 34 of file QMCUpdateBase.cpp.

References QMCUpdateBase::setDefaults().

39  : csoffset(0),
40  Traces(0),
41  wlog_collector(0),
42  W(w),
43  Psi(psi),
44  Guide(guide),
45  H(h),
46  RandomGen(rg),
47  branchEngine(0),
48  DriftModifier(0),
49  Estimators(0),
50  initWalkers_timer_(createGlobalTimer("QMCUpdateBase::WalkerInit", timer_level_medium))
51 {
52  setDefaults();
53 }
TraceManager * Traces
traces
const BranchEngineType * branchEngine
branch engine, stateless reference to the one in QMCDriver
WalkerLogCollector * wlog_collector
TrialWaveFunction & Psi
trial function
EstimatorManagerBase * Estimators
estimator
NewTimer & createGlobalTimer(const std::string &myname, timer_levels mylevel)
TrialWaveFunction & Guide
guide function
MCWalkerConfiguration & W
walker ensemble
void setDefaults()
set default parameters
RealType csoffset
normalization offset for cs type runs.
RandomBase< FullPrecRealType > & RandomGen
random number generator
QMCHamiltonian & H
Hamiltonian.
const DriftModifierBase * DriftModifier
drift modifer, stateless reference to the one in QMCDriver

◆ ~QMCUpdateBase()

~QMCUpdateBase ( )
virtual

destructor

Definition at line 77 of file QMCUpdateBase.cpp.

77 {}

◆ QMCUpdateBase() [3/3]

QMCUpdateBase ( const QMCUpdateBase )
protecteddelete

copy constructor (disabled)

Member Function Documentation

◆ acceptRatio()

RealType acceptRatio ( ) const
inline

Definition at line 90 of file QMCUpdateBase.h.

References QMCUpdateBase::nAccept, and QMCUpdateBase::nReject.

Referenced by QMCUpdateBase::stopBlock().

91  {
92  return static_cast<RealType>(nAccept) / static_cast<RealType>(nAccept + nReject);
93  }
QMCTraits::RealType RealType
IndexType nAccept
counter for number of moves accepted
Definition: QMCUpdateBase.h:63
IndexType nReject
counter for number of moves rejected
Definition: QMCUpdateBase.h:65

◆ accumulate()

void accumulate ( WalkerIter_t  it,
WalkerIter_t  it_end 
)
inline

Definition at line 187 of file QMCUpdateBase.h.

References EstimatorManagerBase::accumulate(), QMCUpdateBase::Estimators, and QMCUpdateBase::W.

187 { Estimators->accumulate(W, it, it_end); }
void accumulate(MCWalkerConfiguration &W)
accumulate the measurements
EstimatorManagerBase * Estimators
estimator
MCWalkerConfiguration & W
walker ensemble

◆ advanceWalker()

◆ advanceWalkerForEE()

virtual RealType advanceWalkerForEE ( Walker_t w1,
std::vector< PosType > &  dR,
std::vector< int > &  iats,
std::vector< int > &  rs,
std::vector< RealType > &  ratios 
)
inlinevirtual

Definition at line 199 of file QMCUpdateBase.h.

204  {
205  return 0.0;
206  };

◆ advanceWalkers()

void advanceWalkers ( WalkerIter_t  it,
WalkerIter_t  it_end,
bool  recompute 
)
virtual

advance walkers executed at each step

Derived classes implement how to move walkers and accept/reject moves.

Reimplemented in RMCUpdatePbyPWithDrift, and RMCUpdateAllWithDrift.

Definition at line 359 of file QMCUpdateBase.cpp.

References QMCUpdateBase::advanceWalker().

Referenced by qmcplusplus::TEST_CASE().

360 {
361  for (; it != it_end; ++it)
362  {
363  advanceWalker(**it, recompute);
364  }
365 }
virtual void advanceWalker(Walker_t &thisWalker, bool recompute)=0
move a walker

◆ checkLogAndGL()

void checkLogAndGL ( ParticleSet pset,
TrialWaveFunction twf,
const std::string_view  location 
)
staticprotected

check logpsi and grad and lap against values computed from scratch

Definition at line 292 of file QMCUpdateBase.cpp.

References qmcplusplus::abs(), qmcplusplus::dot(), qmcplusplus::exp(), qmcplusplus::pset, qmcplusplus::sqrt(), and qmcplusplus::twf.

Referenced by SODMCUpdatePbyPWithRejectionFast::advanceWalker(), VMCUpdatePbyP::advanceWalker(), SOVMCUpdatePbyP::advanceWalker(), and DMCUpdatePbyPWithRejectionFast::advanceWalker().

293 {
294  bool success = true;
295  TrialWaveFunction::LogValue log_value{twf.getLogPsi(), twf.getPhase()};
298 
299  pset.update();
300  twf.evaluateLog(pset);
301 
302  RealType threshold;
303  // mixed precision can't make this test with cuda direct inversion
304  if constexpr (std::is_same<RealType, FullPrecRealType>::value)
305  threshold = 100 * std::numeric_limits<float>::epsilon();
306  else
307  threshold = 500 * std::numeric_limits<float>::epsilon();
308 
309  std::ostringstream msg;
310  auto& ref_G = twf.G;
311  auto& ref_L = twf.L;
312  TrialWaveFunction::LogValue ref_log{twf.getLogPsi(), twf.getPhase()};
313  if (std::abs(std::exp(log_value) - std::exp(ref_log)) > std::abs(std::exp(ref_log)) * threshold)
314  {
315  success = false;
316  msg << "Logpsi " << log_value << " ref " << ref_log << std::endl;
317  }
318 
319  for (int iel = 0; iel < ref_G.size(); iel++)
320  {
321  auto grad_diff = ref_G[iel] - G_saved[iel];
322  if (std::sqrt(std::abs(dot(grad_diff, grad_diff))) > std::sqrt(std::abs(dot(ref_G[iel], ref_G[iel]))) * threshold)
323  {
324  success = false;
325  msg << "Grad[" << iel << "] ref = " << ref_G[iel] << " wrong = " << G_saved[iel] << " Delta " << grad_diff
326  << std::endl;
327  }
328 
329  auto lap_diff = ref_L[iel] - L_saved[iel];
330  if (std::abs(lap_diff) > std::abs(ref_L[iel]) * threshold)
331  {
332  // very hard to check mixed precision case, only print, no error out
333  if (std::is_same<RealType, FullPrecRealType>::value)
334  success = false;
335  msg << "lap[" << iel << "] ref = " << ref_L[iel] << " wrong = " << L_saved[iel] << " Delta " << lap_diff
336  << std::endl;
337  }
338  }
339 
340  std::cerr << msg.str();
341  if (!success)
342  throw std::runtime_error(std::string("checkLogAndGL failed at ") + std::string(location) + std::string("\n"));
343 }
MakeReturn< UnaryNode< FnFabs, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t abs(const Vector< T1, C1 > &l)
WaveFunctionComponent::LogValue LogValue
ParticleAttrib< QTFull::ValueType > ParticleLaplacian
Definition: Configuration.h:96
MakeReturn< UnaryNode< FnExp, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t exp(const Vector< T1, C1 > &l)
MakeReturn< UnaryNode< FnSqrt, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sqrt(const Vector< T1, C1 > &l)
QMCTraits::RealType RealType
Tensor< typename BinaryReturn< T1, T2, OpMultiply >::Type_t, D > dot(const AntiSymTensor< T1, D > &lhs, const AntiSymTensor< T2, D > &rhs)
ParticleAttrib< QTFull::GradType > ParticleGradient
Definition: Configuration.h:95

◆ getLogs()

void getLogs ( std::vector< RealType > &  logs)
inline

Definition at line 140 of file QMCUpdateBase.h.

References TrialWaveFunction::getLogs(), and QMCUpdateBase::Psi.

140 { Psi.getLogs(logs); }
void getLogs(std::vector< RealType > &lvals)
TrialWaveFunction & Psi
trial function

◆ getNodeCorrection()

QMCUpdateBase::RealType getNodeCorrection ( const ParticleSet::ParticleGradient g,
ParticleSet::ParticlePos gscaled 
)
protected

evaluate the ratio of scaled velocity and velocity

Parameters
ggradient
gscaledscaled gradient
Returns
the ratio

Definition at line 282 of file QMCUpdateBase.cpp.

References QMCUpdateBase::MassInvP, qmcplusplus::setScaledDriftPbyPandNodeCorr(), and QMCUpdateBase::Tau.

284 {
285  //setScaledDrift(m_tauovermass,g,gscaled);
286  //RealType vsq=Dot(g,g);
287  //RealType x=m_tauovermass*vsq;
288  //return (vsq<std::numeric_limits<RealType>::epsilon())? 1.0:((-1.0+std::sqrt(1.0+2.0*x))/x);
289  return setScaledDriftPbyPandNodeCorr(Tau, MassInvP, g, gscaled);
290 }
T setScaledDriftPbyPandNodeCorr(T tau, const ParticleAttrib< TinyVector< T1, D >> &qf, ParticleAttrib< TinyVector< T, D >> &drift)
scale drift
RealType Tau
timestep
Definition: QMCUpdateBase.h:73
std::vector< RealType > MassInvP
1/Mass per particle

◆ getSpinMass()

RealType getSpinMass ( )
inline

Definition at line 136 of file QMCUpdateBase.h.

References QMCUpdateBase::spinMass.

136 { return spinMass; }
RealType spinMass
spin mass
Definition: QMCUpdateBase.h:75

◆ getTau()

RealType getTau ( )
inline

Definition at line 111 of file QMCUpdateBase.h.

References QMCUpdateBase::Tau.

112  {
113  //SpeciesSet tspecies(W.getSpeciesSet());
114  //int massind=tspecies.addAttribute("mass");
115  //RealType mass = tspecies(massind,0);
116  //return m_tauovermass*mass;
117  return Tau;
118  }
RealType Tau
timestep
Definition: QMCUpdateBase.h:73

◆ initWalkers()

void initWalkers ( WalkerIter_t  it,
WalkerIter_t  it_end 
)
virtual

initialize Walker for walker update

Reimplemented in RMCUpdatePbyPWithDrift, and RMCUpdateAllWithDrift.

Definition at line 217 of file QMCUpdateBase.cpp.

References QMCUpdateBase::drift, QMCHamiltonian::evaluate(), TrialWaveFunction::evaluateLog(), ParticleSet::G, TrialWaveFunction::getPhase(), QMCUpdateBase::H, QMCUpdateBase::initWalkers_timer_, ParticleSet::L, QMCUpdateBase::MassInvP, QMCUpdateBase::Psi, ParticleSet::R, QMCHamiltonian::saveProperty(), qmcplusplus::setScaledDriftPbyPandNodeCorr(), QMCUpdateBase::Tau, ParticleSet::update(), QMCUpdateBase::UpdatePbyP, QMCUpdateBase::W, and qmcplusplus::walker.

218 {
220  UpdatePbyP = false;
221  //ignore different mass
222  //RealType tauovermass = Tau*MassInv[0];
223  for (; it != it_end; ++it)
224  {
225  auto& walker = *it;
226  W.R = walker->R;
227  W.update();
228  RealType logpsi(Psi.evaluateLog(W));
229  walker->G = W.G;
230  walker->L = W.L;
232  RealType ene = H.evaluate(W);
233  // cannot call auxHevalate() here because walkers are not initialized
234  // for example, DensityEstimator needs the weights of the walkers
235  //H.auxHevaluate(W);
236  walker->resetProperty(logpsi, Psi.getPhase(), ene, 0.0, 0.0, nodecorr);
237  walker->Weight = 1.0;
238  H.saveProperty(walker->getPropertyBase());
239  }
240 }
RealType evaluateLog(ParticleSet &P)
evalaute the log (internally gradients and laplacian) of the trial wavefunction.
ParticleSet::ParticlePos drift
temporary storage for drift
TrialWaveFunction & Psi
trial function
void saveProperty(IT first)
save the values of Hamiltonian elements to the Properties
ScopeGuard< NewTimer > ScopedTimer
Definition: NewTimer.h:257
void update(bool skipSK=false)
update the internal data
ParticleLaplacian L
laplacians of the particles
Definition: ParticleSet.h:85
T setScaledDriftPbyPandNodeCorr(T tau, const ParticleAttrib< TinyVector< T1, D >> &qf, ParticleAttrib< TinyVector< T, D >> &drift)
scale drift
ParticleGradient G
gradients of the particles
Definition: ParticleSet.h:83
RealType Tau
timestep
Definition: QMCUpdateBase.h:73
ParticlePos R
Position.
Definition: ParticleSet.h:79
MCWalkerConfiguration & W
walker ensemble
std::vector< RealType > MassInvP
1/Mass per particle
QMCTraits::RealType RealType
FullPrecRealType evaluate(ParticleSet &P)
evaluate Local Energy
QMCHamiltonian & H
Hamiltonian.
bool UpdatePbyP
update particle-by-particle

◆ initWalkersForPbyP()

void initWalkersForPbyP ( WalkerIter_t  it,
WalkerIter_t  it_end 
)
virtual

initialize Walker buffers for PbyP update

Reimplemented in RMCUpdatePbyPWithDrift.

Definition at line 242 of file QMCUpdateBase.cpp.

References PooledMemory< T_scalar, Alloc >::allocate(), qmcplusplus::app_log(), QMCHamiltonian::auxHevaluate(), PooledMemory< T_scalar, Alloc >::clear(), TrialWaveFunction::copyFromBuffer(), Walker< t_traits, p_traits >::DataSet, QMCHamiltonian::evaluate(), TrialWaveFunction::evaluateLog(), TrialWaveFunction::getPhase(), Walker< t_traits, p_traits >::getPropertyBase(), ParticleSet::getTotalNum(), QMCUpdateBase::H, QMCUpdateBase::initWalkers_timer_, qmcplusplus::print_mem(), ParticleSet::Properties, Walker< t_traits, p_traits >::Properties, QMCUpdateBase::Psi, ParticleSet::R, Walker< t_traits, p_traits >::R, Walker< t_traits, p_traits >::registerData(), TrialWaveFunction::registerData(), Walker< t_traits, p_traits >::resetProperty(), PooledMemory< T_scalar, Alloc >::rewind(), QMCHamiltonian::saveProperty(), ParticleSet::saveWalker(), PooledMemory< T_scalar, Alloc >::size(), ParticleSet::spins, Walker< t_traits, p_traits >::spins, ParticleSet::update(), TrialWaveFunction::updateBuffer(), QMCUpdateBase::UpdatePbyP, QMCUpdateBase::W, and Walker< t_traits, p_traits >::Weight.

243 {
245  UpdatePbyP = true;
246  if (it == it_end)
247  {
248  // a particular case, no walker enters in this call.
249  // but need to free the memory of Psi.
250  Walker_t dummy_walker(W.getTotalNum());
251  dummy_walker.Properties = W.Properties;
252  dummy_walker.registerData();
253  Psi.registerData(W, dummy_walker.DataSet);
254  }
255  for (; it != it_end; ++it)
256  {
257  Walker_t& awalker(**it);
258  W.R = awalker.R;
259  W.spins = awalker.spins;
260  W.update();
261  if (awalker.DataSet.size())
262  awalker.DataSet.clear();
263  awalker.DataSet.rewind();
264  awalker.registerData();
265  Psi.registerData(W, awalker.DataSet);
266  awalker.DataSet.allocate();
267  // This from here on should happen in the scope of the block
268  Psi.copyFromBuffer(W, awalker.DataSet);
269  Psi.evaluateLog(W);
270  RealType logpsi = Psi.updateBuffer(W, awalker.DataSet, false);
271  W.saveWalker(awalker);
272  RealType eloc = H.evaluate(W);
273  awalker.resetProperty(logpsi, Psi.getPhase(), eloc);
274  H.auxHevaluate(W, awalker);
275  H.saveProperty(awalker.getPropertyBase());
276  awalker.Weight = 1.;
277  }
278 #pragma omp master
279  print_mem("Memory Usage after the buffer registration", app_log());
280 }
RealType evaluateLog(ParticleSet &P)
evalaute the log (internally gradients and laplacian) of the trial wavefunction.
PropertyContainer_t Properties
scalar properties of a walker
Definition: Walker.h:125
void copyFromBuffer(ParticleSet &P, WFBufferType &buf)
copy all the wavefunction components from buffer.
ParticleScalar spins
internal spin variables for dynamical spin calculations
Definition: ParticleSet.h:81
PropertyContainer_t Properties
properties of the current walker
Definition: ParticleSet.h:119
TrialWaveFunction & Psi
trial function
size_t getTotalNum() const
Definition: ParticleSet.h:493
std::ostream & app_log()
Definition: OutputManager.h:65
void saveProperty(IT first)
save the values of Hamiltonian elements to the Properties
MCWalkerConfiguration::Walker_t Walker_t
Definition: QMCUpdateBase.h:44
ScopeGuard< NewTimer > ScopedTimer
Definition: NewTimer.h:257
void update(bool skipSK=false)
update the internal data
void print_mem(const std::string &title, std::ostream &log)
Definition: MemoryUsage.cpp:30
RealType updateBuffer(ParticleSet &P, WFBufferType &buf, bool fromscratch=false)
update all the wavefunction components in buffer.
void saveWalker(Walker_t &awalker)
save this to awalker
void registerData(ParticleSet &P, WFBufferType &buf)
register all the wavefunction components in buffer.
ParticlePos R
Position.
Definition: ParticleSet.h:79
MCWalkerConfiguration & W
walker ensemble
void auxHevaluate(ParticleSet &P)
QMCTraits::RealType RealType
FullPrecRealType evaluate(ParticleSet &P)
evaluate Local Energy
QMCHamiltonian & H
Hamiltonian.
bool UpdatePbyP
update particle-by-particle

◆ logBackwardGF()

RealType logBackwardGF ( const ParticleSet::ParticlePos displ)
inline

Definition at line 234 of file QMCUpdateBase.h.

References qmcplusplus::dot(), ParticleSet::getTotalNum(), QMCUpdateBase::SqrtTauOverMass, and QMCUpdateBase::W.

Referenced by DMCUpdateAllWithRejection::advanceWalker(), VMCUpdateAll::advanceWalker(), DMCUpdateAllWithKill::advanceWalker(), and CSVMCUpdateAllWithDrift::advanceWalker().

235  {
236  RealType logGb = 0.0;
237  for (int iat = 0; iat < W.getTotalNum(); ++iat)
238  {
239  RealType mass_over_tau = 1.0 / (SqrtTauOverMass[iat] * SqrtTauOverMass[iat]);
240  logGb += 0.5 * dot(displ[iat], displ[iat]) * mass_over_tau;
241  }
242  return -logGb;
243  }
size_t getTotalNum() const
Definition: ParticleSet.h:493
std::vector< RealType > SqrtTauOverMass
sqrt(tau/Mass) per particle
MCWalkerConfiguration & W
walker ensemble
QMCTraits::RealType RealType
Tensor< typename BinaryReturn< T1, T2, OpMultiply >::Type_t, D > dot(const AntiSymTensor< T1, D > &lhs, const AntiSymTensor< T2, D > &rhs)

◆ operator=()

QMCUpdateBase& operator= ( const QMCUpdateBase )
inlineprivate

Copy operator (disabled).

Definition at line 315 of file QMCUpdateBase.h.

315 { return *this; }

◆ put()

bool put ( xmlNodePtr  cur)
virtual

process options

Reimplemented in RMCUpdateAllWithDrift, and RMCUpdatePbyPWithDrift.

Definition at line 102 of file QMCUpdateBase.cpp.

References qmcplusplus::ALL_OFF, qmcplusplus::CHECKGL_AFTER_LOAD, qmcplusplus::CHECKGL_AFTER_MOVES, qmcplusplus::CHECKGL_AFTER_TMOVE, QMCUpdateBase::debug_checks_, QMCUpdateBase::debug_checks_str_, QMCUpdateBase::H, QMCUpdateBase::myParams, ParameterSet::put(), qmcplusplus::Units::time::s, and QMCHamiltonian::setNonLocalMoves().

Referenced by RMCUpdateAllWithDrift::put(), RMCUpdatePbyPWithDrift::put(), and qmcplusplus::TEST_CASE().

103 {
104  H.setNonLocalMoves(cur);
105  bool s = myParams.put(cur);
106  if (debug_checks_str_ == "no")
108  else
109  {
110  if (debug_checks_str_ == "all" || debug_checks_str_ == "checkGL_after_load")
112  if (debug_checks_str_ == "all" || debug_checks_str_ == "checkGL_after_moves")
114  if (debug_checks_str_ == "all" || debug_checks_str_ == "checkGL_after_tmove")
116  }
117  return s;
118 }
void setNonLocalMoves(xmlNodePtr cur)
set non local moves options
DriverDebugChecks debug_checks_
determine additional checks for debugging purpose
Definition: QMCUpdateBase.h:58
bool put(std::istream &is) override
read from std::istream
Definition: ParameterSet.h:42
QMCHamiltonian & H
Hamiltonian.
ParameterSet myParams
parameters

◆ resetRun()

void resetRun ( BranchEngineType brancher,
EstimatorManagerBase est,
TraceManager traces,
const DriftModifierBase driftmodifer 
)

reset the QMCUpdateBase parameters

Parameters
brancherengine which handles branching

Update time-step variables to move walkers

Definition at line 130 of file QMCUpdateBase.cpp.

References QMCUpdateBase::branchEngine, QMCUpdateBase::deltaR, QMCUpdateBase::deltaS, QMCUpdateBase::dG, QMCUpdateBase::dL, QMCUpdateBase::drift, QMCUpdateBase::DriftModifier, QMCUpdateBase::Estimators, QMCUpdateBase::G, ParticleSet::getLattice(), SimpleFixedNodeBranch::getTau(), ParticleSet::getTotalNum(), QMCUpdateBase::L, QMCUpdateBase::m_oneover2tau, QMCUpdateBase::m_r2max, QMCUpdateBase::m_sqrttau, QMCUpdateBase::m_tauovermass, QMCUpdateBase::MassInvP, QMCUpdateBase::MassInvS, QMCUpdateBase::NumPtcl, qmcplusplus::sqrt(), QMCUpdateBase::SqrtTauOverMass, QMCUpdateBase::Tau, QMCUpdateBase::Traces, QMCUpdateBase::UpdatePbyP, and QMCUpdateBase::W.

Referenced by QMCUpdateBase::resetRun2(), and qmcplusplus::TEST_CASE().

134 {
135  Estimators = est;
136  branchEngine = brancher;
137  DriftModifier = driftmodifer;
138  Traces = traces;
139 
140  NumPtcl = W.getTotalNum();
141  deltaR.resize(NumPtcl);
142  deltaS.resize(NumPtcl);
143  drift.resize(NumPtcl);
144  G.resize(NumPtcl);
145  dG.resize(NumPtcl);
146  L.resize(NumPtcl);
147  dL.resize(NumPtcl);
148  //set the default tau-mass related values with electrons
149  Tau = brancher->getTau();
150  m_tauovermass = Tau * MassInvS[0];
151  m_oneover2tau = 0.5 / (m_tauovermass);
153  if (!UpdatePbyP)
154  {
155  // store sqrt(tau/mass)
156  SqrtTauOverMass.resize(W.getTotalNum());
157  for (int iat = 0; iat < W.getTotalNum(); ++iat)
158  SqrtTauOverMass[iat] = std::sqrt(Tau * MassInvP[iat]);
159  }
160  //app_log() << " QMCUpdateBase::resetRun m/tau=" << m_tauovermass << std::endl;
161  if (m_r2max < 0)
162  m_r2max = W.getLattice().LR_rc * W.getLattice().LR_rc;
163  //app_log() << " Setting the bound for the displacement std::max(r^2) = " << m_r2max << std::endl;
164 }
TraceManager * Traces
traces
const BranchEngineType * branchEngine
branch engine, stateless reference to the one in QMCDriver
ParticleSet::ParticlePos drift
temporary storage for drift
RealType m_tauovermass
tau/mass
size_t getTotalNum() const
Definition: ParticleSet.h:493
ParticleSet::ParticleScalar deltaS
temporart storage for spin displacement
RealType m_sqrttau
Time-step factor .
ParticleSet::ParticlePos deltaR
temporary storage for random displacement
EstimatorManagerBase * Estimators
estimator
std::vector< RealType > SqrtTauOverMass
sqrt(tau/Mass) per particle
RealType Tau
timestep
Definition: QMCUpdateBase.h:73
ParticleSet::ParticleLaplacian dL
MCWalkerConfiguration & W
walker ensemble
std::vector< RealType > MassInvP
1/Mass per particle
MakeReturn< UnaryNode< FnSqrt, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sqrt(const Vector< T1, C1 > &l)
const auto & getLattice() const
Definition: ParticleSet.h:251
RealType m_oneover2tau
Time-step factor .
ParticleSet::ParticleLaplacian L
storage for differential laplacians for PbyP update
ParticleSet::ParticleGradient dG
ParticleSet::ParticleGradient G
storage for differential gradients for PbyP update
std::vector< RealType > MassInvS
1/Mass per species
IndexType NumPtcl
number of particles
RealType m_r2max
maximum displacement^2
bool UpdatePbyP
update particle-by-particle
const DriftModifierBase * DriftModifier
drift modifer, stateless reference to the one in QMCDriver

◆ resetRun2()

void resetRun2 ( BranchEngineType brancher,
EstimatorManagerBase est,
TraceManager traces,
WalkerLogCollector wlog_collector_,
const DriftModifierBase driftmodifer 
)

Definition at line 120 of file QMCUpdateBase.cpp.

References QMCUpdateBase::resetRun(), and QMCUpdateBase::wlog_collector.

125 {
126  wlog_collector = wlog_collector_;
127  resetRun(brancher,est,traces,driftmodifer);
128 }
WalkerLogCollector * wlog_collector
void resetRun(BranchEngineType *brancher, EstimatorManagerBase *est, TraceManager *traces, const DriftModifierBase *driftmodifer)
reset the QMCUpdateBase parameters

◆ RMC_checkIndex()

int RMC_checkIndex ( int  N,
int  NMax 
)
inline

Definition at line 216 of file QMCUpdateBase.h.

References qmcplusplus::Units::force::N.

217  {
218  if (N < 0)
219  return N + NMax;
220  else if (N >= NMax)
221  return N - NMax;
222  else
223  return N;
224  }

◆ RMC_checkWalkerBounds()

void RMC_checkWalkerBounds ( WalkerIter_t it,
WalkerIter_t  first,
WalkerIter_t  last 
)
inline

Definition at line 226 of file QMCUpdateBase.h.

227  {
228  if (it >= last)
229  it -= (last - first);
230  else if (it < first)
231  it += (last - first);
232  }

◆ set_step()

void set_step ( int  step)
inline

Definition at line 142 of file QMCUpdateBase.h.

References ParticleSet::current_step, and QMCUpdateBase::W.

142 { W.current_step = step; }
int current_step
current MC step
Definition: ParticleSet.h:134
MCWalkerConfiguration & W
walker ensemble

◆ setDefaults()

void setDefaults ( )
private

set default parameters

Definition at line 79 of file QMCUpdateBase.cpp.

References ParameterSet::add(), SpeciesSet::addAttribute(), QMCUpdateBase::debug_checks_str_, ParticleSet::first(), ParticleSet::getSpeciesSet(), ParticleSet::getTotalNum(), ParticleSet::groups(), ParticleSet::last(), QMCUpdateBase::m_r2max, QMCUpdateBase::MassInvP, QMCUpdateBase::MassInvS, QMCUpdateBase::MaxAge, QMCUpdateBase::myParams, QMCUpdateBase::nSubSteps, QMCUpdateBase::NumPtcl, QMCUpdateBase::UpdatePbyP, QMCUpdateBase::UseDrift, and QMCUpdateBase::W.

Referenced by QMCUpdateBase::QMCUpdateBase().

80 {
81  UpdatePbyP = true;
82  UseDrift = true;
83  NumPtcl = 0;
84  nSubSteps = 1;
85  MaxAge = 10;
86  m_r2max = -1;
87  myParams.add(m_r2max, "maxDisplSq"); //maximum displacement
88  myParams.add(debug_checks_str_, "debug_checks", {"no", "all", "checkGL_after_moves"});
89  //store 1/mass per species
90  SpeciesSet tspecies(W.getSpeciesSet());
91  assert(tspecies.getTotalNum() == W.groups());
92  int massind = tspecies.addAttribute("mass");
93  MassInvS.resize(tspecies.getTotalNum());
94  for (int ig = 0; ig < tspecies.getTotalNum(); ++ig)
95  MassInvS[ig] = 1.0 / tspecies(massind, ig);
96  MassInvP.resize(W.getTotalNum());
97  for (int ig = 0; ig < W.groups(); ++ig)
98  for (int iat = W.first(ig); iat < W.last(ig); ++iat)
99  MassInvP[iat] = MassInvS[ig];
100 }
size_t getTotalNum() const
Definition: ParticleSet.h:493
int first(int igroup) const
return the first index of a group i
Definition: ParticleSet.h:514
int groups() const
return the number of groups
Definition: ParticleSet.h:511
int last(int igroup) const
return the last index of a group i
Definition: ParticleSet.h:517
MCWalkerConfiguration & W
walker ensemble
std::vector< RealType > MassInvP
1/Mass per particle
SpeciesSet & getSpeciesSet()
retrun the SpeciesSet of this particle set
Definition: ParticleSet.h:231
int nSubSteps
number of steps per measurement
Definition: QMCUpdateBase.h:56
void add(PDT &aparam, const std::string &aname_in, std::vector< PDT > candidate_values={}, TagStatus status=TagStatus::OPTIONAL)
add a new parameter corresponding to an xmlNode <parameter>
IndexType MaxAge
MaxAge>0 indicates branch is done.
Definition: QMCUpdateBase.h:61
std::vector< RealType > MassInvS
1/Mass per species
IndexType NumPtcl
number of particles
ParameterSet myParams
parameters
RealType m_r2max
maximum displacement^2
bool UpdatePbyP
update particle-by-particle

◆ setMultiplicity() [1/2]

void setMultiplicity ( WalkerIter_t  it,
WalkerIter_t  it_end 
)

set the multiplicity of the walkers to branch

Definition at line 345 of file QMCUpdateBase.cpp.

References QMCUpdateBase::MaxAge, omptarget::min(), QMCUpdateBase::RandomGen, and qmcplusplus::walker.

Referenced by DMCUpdateAllWithRejection::advanceWalker(), SODMCUpdatePbyPWithRejectionFast::advanceWalker(), DMCUpdatePbyPWithRejectionFast::advanceWalker(), DMCUpdatePbyPL2::advanceWalker(), and DMCUpdateAllWithKill::advanceWalker().

346 {
347  for (; it != it_end; ++it)
348  {
349  auto& walker = *it;
350  RealType M = walker->Weight;
351  if (walker->Age > MaxAge)
352  M = std::min((RealType)0.5, M);
353  else if (walker->Age > 0)
354  M = std::min((RealType)1.0, M);
355  walker->Multiplicity = M + RandomGen();
356  }
357 }
T min(T a, T b)
IndexType MaxAge
MaxAge>0 indicates branch is done.
Definition: QMCUpdateBase.h:61
QMCTraits::RealType RealType
RandomBase< FullPrecRealType > & RandomGen
random number generator

◆ setMultiplicity() [2/2]

void setMultiplicity ( Walker_t awalker) const
inline

Definition at line 163 of file QMCUpdateBase.h.

References Walker< t_traits, p_traits >::Age, BLAS::cone, QMCUpdateBase::MaxAge, omptarget::min(), Walker< t_traits, p_traits >::Multiplicity, QMCUpdateBase::RandomGen, and Walker< t_traits, p_traits >::Weight.

164  {
165  constexpr RealType onehalf(0.5);
166  constexpr RealType cone(1);
167  RealType M = awalker.Weight;
168  if (awalker.Age > MaxAge)
169  M = std::min(onehalf, M);
170  else if (awalker.Age > 0)
171  M = std::min(cone, M);
172  awalker.Multiplicity = M + RandomGen();
173  }
constexpr std::complex< float > cone
Definition: BLAS.hpp:50
T min(T a, T b)
IndexType MaxAge
MaxAge>0 indicates branch is done.
Definition: QMCUpdateBase.h:61
QMCTraits::RealType RealType
RandomBase< FullPrecRealType > & RandomGen
random number generator

◆ setSpinMass()

void setSpinMass ( RealType  m)
inline

Definition at line 138 of file QMCUpdateBase.h.

References qmcplusplus::Units::distance::m, and QMCUpdateBase::spinMass.

138 { spinMass = m; }
RealType spinMass
spin mass
Definition: QMCUpdateBase.h:75

◆ setTau()

void setTau ( RealType  t)
inline

Definition at line 120 of file QMCUpdateBase.h.

References QMCUpdateBase::m_oneover2tau, QMCUpdateBase::m_sqrttau, QMCUpdateBase::m_tauovermass, QMCUpdateBase::MassInvS, qmcplusplus::sqrt(), and QMCUpdateBase::Tau.

121  {
122  //SpeciesSet tspecies(W.getSpeciesSet());
123  //int massind=tspecies.addAttribute("mass");
124  //RealType mass = tspecies(massind,0);
125  //RealType oneovermass = 1.0/mass;
126  //RealType oneoversqrtmass = std::sqrt(oneovermass);
127  // // Tau=brancher->getTau();
128  // // assert (Tau==i);
129  //m_tauovermass = i/mass;
130  Tau = t;
131  m_tauovermass = t * MassInvS[0];
132  m_oneover2tau = 0.5 / (m_tauovermass);
134  }
RealType m_tauovermass
tau/mass
RealType m_sqrttau
Time-step factor .
RealType Tau
timestep
Definition: QMCUpdateBase.h:73
MakeReturn< UnaryNode< FnSqrt, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sqrt(const Vector< T1, C1 > &l)
RealType m_oneover2tau
Time-step factor .
std::vector< RealType > MassInvS
1/Mass per species

◆ startBlock()

void startBlock ( int  steps)

prepare to start a block

Parameters
stepsnumber of steps within the block

Definition at line 194 of file QMCUpdateBase.cpp.

References QMCUpdateBase::Estimators, QMCUpdateBase::nAccept, QMCUpdateBase::nAllRejected, QMCUpdateBase::nNodeCrossing, QMCUpdateBase::NonLocalMoveAccepted, QMCUpdateBase::nReject, WalkerLogCollector::startBlock(), EstimatorManagerBase::startBlock(), TraceManager::startBlock(), QMCUpdateBase::Traces, and QMCUpdateBase::wlog_collector.

Referenced by qmcplusplus::TEST_CASE().

195 {
196  Estimators->startBlock(steps);
197 #if !defined(REMOVE_TRACEMANAGER)
198  Traces->startBlock(steps);
199 #endif
200  if(wlog_collector)
202  nAccept = 0;
203  nReject = 0;
204  nAllRejected = 0;
205  nNodeCrossing = 0;
207 }
TraceManager * Traces
traces
WalkerLogCollector * wlog_collector
void startBlock(int nsteps)
IndexType nNodeCrossing
Total number of node crossings per block.
Definition: QMCUpdateBase.h:69
void startBlock(int steps)
start a block
EstimatorManagerBase * Estimators
estimator
void startBlock()
resize buffers to zero rows at beginning of each MC block
IndexType nAccept
counter for number of moves accepted
Definition: QMCUpdateBase.h:63
IndexType nReject
counter for number of moves rejected
Definition: QMCUpdateBase.h:65
IndexType NonLocalMoveAccepted
Total numer of non-local moves accepted.
Definition: QMCUpdateBase.h:71
IndexType nAllRejected
Total number of the steps when all the particle moves are rejected.
Definition: QMCUpdateBase.h:67

◆ startRun()

void startRun ( int  blocks,
bool  record 
)

start a run

Definition at line 166 of file QMCUpdateBase.cpp.

References APP_ABORT, QMCUpdateBase::Estimators, QMCUpdateBase::H, QMCHamiltonian::initialize_traces(), TraceManager::initialize_traces(), EstimatorManagerBase::start(), QMCUpdateBase::Traces, and QMCUpdateBase::W.

167 {
168  Estimators->start(blocks, record);
169 #if !defined(REMOVE_TRACEMANAGER)
170  if (!Traces)
171  {
172  APP_ABORT(
173  "QMCUpdateBase::startRun\n derived QMCDriver class has not setup trace clones properly\n null TraceManager "
174  "pointer encountered in derived QMCUpdateBase class\n see VMCLinearOptOMP.cpp for a correct minimal interface "
175  "(search on 'trace')\n refer to changes made in SVN revision 6597 for further guidance");
176  }
179 #endif
180 }
TraceManager * Traces
traces
EstimatorManagerBase * Estimators
estimator
#define APP_ABORT(msg)
Widely used but deprecated fatal error macros from legacy code.
Definition: AppAbort.h:27
MCWalkerConfiguration & W
walker ensemble
void initialize_traces(TraceManager &tm, ParticleSet &P)
initialize trace data
void start(int blocks, bool record=true)
start a run
QMCHamiltonian & H
Hamiltonian.

◆ stopBlock()

void stopBlock ( bool  collectall = true)

stop a block

Definition at line 209 of file QMCUpdateBase.cpp.

References QMCUpdateBase::acceptRatio(), QMCUpdateBase::Estimators, EstimatorManagerBase::stopBlock(), TraceManager::stopBlock(), and QMCUpdateBase::Traces.

210 {
211  Estimators->stopBlock(acceptRatio(), collectall);
212 #if !defined(REMOVE_TRACEMANAGER)
213  Traces->stopBlock();
214 #endif
215 }
TraceManager * Traces
traces
EstimatorManagerBase * Estimators
estimator
void stopBlock(RealType accept, bool collectall=true)
stop a block
RealType acceptRatio() const
Definition: QMCUpdateBase.h:90

◆ stopRun()

void stopRun ( )

stop a run

Definition at line 182 of file QMCUpdateBase.cpp.

References QMCUpdateBase::Estimators, and EstimatorManagerBase::stop().

182 { Estimators->stop(); }
EstimatorManagerBase * Estimators
estimator

◆ stopRun2()

void stopRun2 ( )

Definition at line 186 of file QMCUpdateBase.cpp.

References QMCHamiltonian::finalize_traces(), TraceManager::finalize_traces(), QMCUpdateBase::H, and QMCUpdateBase::Traces.

187 {
188 #if !defined(REMOVE_TRACEMANAGER)
189  H.finalize_traces();
191 #endif
192 }
TraceManager * Traces
traces
void finalize_traces()
finalize trace data
QMCHamiltonian & H
Hamiltonian.

Member Data Documentation

◆ branchEngine

◆ csoffset

RealType csoffset

normalization offset for cs type runs.

Definition at line 206 of file QMCUpdateBase.h.

◆ debug_checks_

◆ debug_checks_str_

std::string debug_checks_str_

Definition at line 59 of file QMCUpdateBase.h.

Referenced by QMCUpdateBase::put(), and QMCUpdateBase::setDefaults().

◆ deltaR

◆ deltaS

◆ dG

◆ dL

Definition at line 296 of file QMCUpdateBase.h.

Referenced by QMCUpdateBase::resetRun().

◆ drift

◆ DriftModifier

◆ Estimators

◆ G

storage for differential gradients for PbyP update

Definition at line 294 of file QMCUpdateBase.h.

Referenced by QMCUpdateBase::resetRun().

◆ Guide

TrialWaveFunction& Guide
protected

guide function

Definition at line 268 of file QMCUpdateBase.h.

◆ H

◆ initWalkers_timer_

NewTimer& initWalkers_timer_
private

◆ L

storage for differential laplacians for PbyP update

Definition at line 296 of file QMCUpdateBase.h.

Referenced by QMCUpdateBase::resetRun().

◆ m_oneover2tau

◆ m_r2max

◆ m_sqrttau

◆ m_tauovermass

◆ MassInvP

◆ MassInvS

◆ MaxAge

◆ myParams

ParameterSet myParams
protected

parameters

Definition at line 280 of file QMCUpdateBase.h.

Referenced by CSUpdateBase::CSUpdateBase(), QMCUpdateBase::put(), and QMCUpdateBase::setDefaults().

◆ nAccept

◆ nAllRejected

◆ nNodeCrossing

◆ NonLocalMoveAccepted

◆ nReject

◆ nSubSteps

◆ NumPtcl

IndexType NumPtcl
protected

number of particles

Definition at line 254 of file QMCUpdateBase.h.

Referenced by QMCUpdateBase::resetRun(), and QMCUpdateBase::setDefaults().

◆ Psi

◆ RandomGen

◆ spinMass

◆ SqrtTauOverMass

◆ Tau

◆ Traces

◆ UpdatePbyP

◆ UseDrift

◆ W

◆ wlog_collector


The documentation for this class was generated from the following files: