From 1fa89e7f37dd71d41429fef85eb7ca6663393842 Mon Sep 17 00:00:00 2001 From: Ye Luo Date: Tue, 28 Feb 2023 16:45:07 -0600 Subject: [PATCH 1/2] Document how the trial energy is updated. --- docs/methods.rst | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/docs/methods.rst b/docs/methods.rst index f7a8462408..eff22dc282 100644 --- a/docs/methods.rst +++ b/docs/methods.rst @@ -1464,10 +1464,6 @@ Additional information: - ``steps``: This is the number of DMC steps in a block. -- ``warmupsteps``: These are the steps at the beginning of a DMC run in - which the instantaneous average energy is used to update the trial - energy. During regular steps, E\ :math:`_{ref}` is used. - - ``timestep``: The ``timestep`` determines the accuracy of the imaginary time propagator. Generally, multiple time steps are used to extrapolate to the infinite time step limit. A good range of time @@ -1490,24 +1486,34 @@ Additional information: - ``debug_checks`` valid values are 'no', 'all', 'checkGL_after_moves'. If the build type is `debug`, the default value is 'all'. Otherwise, the default value is 'no'. -- ``energyUpdateInterval``: The default is to update the trial energy - at every step. Otherwise the trial energy is updated every - ``energyUpdateInterval`` step. +- ``warmupsteps``: These are the steps at the beginning of a DMC run in + which the instantaneous population average energy is used to update the trial + energy and updates happen at every step. + +.. math:: + + E_\text{trial} = E_\text{pop_avg}+(\ln \texttt{targetwalkers}-\ln N_\text{pop}) / \texttt{timestep} + +where :math:`E_\text{pop_avg}` is the local energy average over the walker population at the current step +and :math:`N_\text{pop}` is the current walker population size. +After the warm-up phase, the trial energy is updated as .. math:: - E_{\text{trial}}= - \textrm{refEnergy}+\textrm{feedback}\cdot(\ln\texttt{targetWalkers}-\ln N)\:, + E_\text{trial} = E_\text{ref}+\texttt{feedback}\cdot(\ln\texttt{targetWalkers}-\ln N_\text{pop}) + +where :math:`E_\text{ref}` is the :math:`E_\text{pop_avg}` average over all the post warm-up steps up to the current step. The update frequency is controlled by ``energyUpdateInterval``. -where :math:`N` is the current population. +- ``energyUpdateInterval``: Post warm-up, the trial energy is updated every + ``energyUpdateInterval`` steps. Default value is 1 (every step). - ``refEnergy``: The default reference energy is taken from the VMC run that precedes the DMC run. This value is updated to the current mean whenever branching happens. - ``feedback``: This variable is used to determine how strong to react - to population fluctuations when doing population control. See the - equation in energyUpdateInterval for more details. + to population fluctuations when doing population control. Default value is 1. See the + equation in ``warmupsteps`` for more details. - ``useBareTau``: The same time step is used whether or not a move is rejected. The default is to use an effective time step when a move is From 847a6d00eeee66d8e19d956f9962903ecabcd862 Mon Sep 17 00:00:00 2001 From: "Paul R. C. Kent" Date: Wed, 1 Mar 2023 09:51:14 -0500 Subject: [PATCH 2/2] Expand descriptions --- docs/methods.rst | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/methods.rst b/docs/methods.rst index eff22dc282..7d68ee2c3c 100644 --- a/docs/methods.rst +++ b/docs/methods.rst @@ -216,8 +216,8 @@ Additional information: sufficient number of ``blocks`` to perform statistical analysis. - ``warmupsteps`` - ``warmupsteps`` are used only for - equilibration. Property measurements are not performed during - warm-up steps. + initial equilibration and do not count against the requested step or block count. + Property measurements are not performed during warm-up steps. - ``steps`` - ``steps`` are the number of energy and other property measurements to perform per block. @@ -381,15 +381,15 @@ Additional information: sufficient number of ``blocks`` to perform statistical analysis. - ``warmupsteps`` - ``warmupsteps`` are used only for - equilibration. Property measurements are not performed during - warm-up steps. + initial equilibration and do not count against the requested step or block count. + Property measurements are not performed during warm-up steps. - ``steps`` - ``steps`` are the number of energy and other property measurements to perform per block. - ``substeps`` For each substep, an attempt is made to move each of the electrons once only by either particle-by-particle or an all-electron move. Because the local energy is evaluated only at each full step and not each substep, ``substeps`` are computationally cheaper - and can be used to de-correlation at a low computational cost. + and can be used for decorrelation at a low computational cost. - ``usedrift`` The VMC is implemented in two algorithms with or without drift. In the no-drift algorithm, the move of each @@ -1488,7 +1488,8 @@ Additional information: - ``warmupsteps``: These are the steps at the beginning of a DMC run in which the instantaneous population average energy is used to update the trial - energy and updates happen at every step. + energy and updates happen at every step. The aim is to rapidly equilibrate the population while avoiding overly large population fluctuations. + Unlike VMC, these warmupsteps are included in the requested DMC step count. .. math::