CASINO manual - Theory of Condensed Matter
CASINO manual - Theory of Condensed Matter
CASINO manual - Theory of Condensed Matter
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Population-control catastrophes should not occur under normal circumstances. The following have<br />
been found to lead to catastrophic behaviour: (i) the use <strong>of</strong> a trial wave function that does not satisfy<br />
the electron–nucleus cusp conditions, e.g., when a non-cusp-corrected Gaussian basis is used; (ii) the<br />
use <strong>of</strong> certain nonlocal pseudopotentials in the absence <strong>of</strong> the T -move scheme [20] (set use tmove<br />
to T in order to use the T -move scheme); (iii) the severe truncation <strong>of</strong> localized orbitals, especially<br />
when a smooth truncation scheme is used; (iv) the use <strong>of</strong> an inadequate basis set to represent the<br />
orbitals; (v) pathological trial wave functions, resulting from optimizations that have gone awry (use<br />
jastrow plot to examine the behaviour <strong>of</strong> u(r ij ): it should increase monotonically to 0). All <strong>of</strong> these<br />
circumstances should be avoided if possible.<br />
Note finally that, in large systems, the likelihood <strong>of</strong> population explosions may be reduced if you<br />
use (unreweighted) variance minimization rather than energy minimization to optimize the wave<br />
function. The reason for this is related to the fact that energy minimisation doesn’t care much about<br />
what happens near nodes, since those regions do not contribute much to the energy expectation<br />
value. However, the divergent local energies there make a big difference to the stability <strong>of</strong> the DMC<br />
algorithm. If you’re using backflow then you have to use energy minimisation, but then you’re unlikely<br />
to be looking at a big system.<br />
13.10 Reducing the computational expense <strong>of</strong> DMC equilibration<br />
It is always necessary to discard the results <strong>of</strong> propagating the configuration population over the first<br />
few correlation periods (the equilibration phase) <strong>of</strong> a DMC simulation. Suppose the target population<br />
is large. Because the number <strong>of</strong> statistics-accumulation steps required to achieve a given error bar<br />
is relatively small in this case, equilibration can be a large fraction <strong>of</strong> the total computational effort.<br />
Indeed, for some calculations, DMC equilibration accounts for as much as half <strong>of</strong> the total CPU time.<br />
By contrast, if one uses a small population and runs for a large number <strong>of</strong> correlation periods until<br />
one has generated the required amount <strong>of</strong> data, equilibration is a small fraction <strong>of</strong> the total run time.<br />
Unfortunately, when running on a large number <strong>of</strong> cores, the configuration population is necessarily<br />
large, since each core must have at least one configuration on average.<br />
Here we suggest an alternative approach for equilibrating a DMC calculation with a large target<br />
population P . Instead <strong>of</strong> using VMC to generate P initial configurations, we suggest that VMC be used<br />
to generate a small number <strong>of</strong> configurations q, which are then used in a preliminary DMC calculation<br />
to generate P configurations. In this preliminary DMC calculation with q configurations, equilibration<br />
is followed by (P/q)T corr time steps <strong>of</strong> statistics accumulation, where T corr is the correlation period<br />
in terms <strong>of</strong> time steps, during which a total <strong>of</strong> P configurations are written out. Following this, a P -<br />
configuration DMC statistics-accumulation calculation is performed. Note that q must be sufficiently<br />
large that population-control bias is negligible in the preliminary DMC calculation.<br />
For example, if one wanted to use a population <strong>of</strong> 10,000 configurations in a DMC calculation, one could<br />
carry out a preliminary DMC calculation with 1,000 configurations, until 10,000 independent configurations<br />
were generated, then use these as the initial population for the main 10,000-configuration<br />
run (which would not need to be equilibrated). The computational effort <strong>of</strong> equilibration would be<br />
reduced nearly tenfold.<br />
If the data generated in the preliminary DMC calculation were discarded altogether, this approach<br />
would still lead to a substantial reduction in the computational effort, because the DMC equilibration<br />
would be performed with a small population. However, one can further reduce the waste <strong>of</strong> computational<br />
effort: the data generated in the statistics accumulation phase <strong>of</strong> the preliminary DMC<br />
calculation can be averaged with the data generated in the main DMC calculation. Since some <strong>of</strong><br />
the configurations generated in the preliminary calculation are reused in the initial population <strong>of</strong> the<br />
main DMC calculation, some care must be taken to ensure that the error bar is not underestimated.<br />
The most effective way <strong>of</strong> combining the data from the preliminary and main calculations is still being<br />
investigated, and it is left up to the user to combine the data ‘by hand’ for the time being.<br />
The drawbacks <strong>of</strong> the proposed method are (i) having an extra stage to the calculation; (ii) the fact<br />
that the preliminary DMC calculation would probably have to be run on a relatively small number <strong>of</strong><br />
processors compared with the main calculation; and (iii) the fact that population-control bias might<br />
be a problem if the population q in the preliminary calculation is very small.<br />
In order to perform a preliminary DMC calculation (i.e., to write out configurations during DMC<br />
statistics accumulation), the dmc nconf prelim keyword should be set to the total number <strong>of</strong> configurations<br />
to be written out (summed over all processors). The configurations are written out once<br />
131