Warmup
For a fast equilibration I added three steps to the warmup:
- Some VMC steps: nvar (=4) steps with tau, 2*tau, 4*tau, and 8*tau
- Initialization of the path, all slices equal to the VMC calculation,
and nrep_for = f_repfor*neslices reptation steps in one time direction
(ibounce=-1 to communicate with reptate)
- finally the usual warmup-steps as before
- This means (nvar*4 + nrep_for) additional warming-up steps are added by
default to all calculations. Now I added some 'dynamical' test for the
warmup: If after the VMC, one-way Reptation, or the Warm-up Reptation,
one of the norms (f(2) or f(4)) is less than 10^-4, we repeat the
corresponding warm-up steps; however, at this point we substruct these
additional numbers of warming-up steps from the number of reptation-steps
which shall be performed, nstps(iph). The initial number of steps to be
performed is stored in nstps_save. I test that if for any phase results
a too long warmup, e.g.
nstps(iph)/nstps_save< frac_tot (with frac_tot=0.3), this phase will be
complete thrown out of this calculations (nstps(iph)=0).
- For the tests, I made, this procedure assures, that most of the time,
there is a correct warm-up, only a few times the warm-up would be too
long, and this phase is not counted at all. I have not seen any problems
anymore for the phases which ''survived'' this warmup.
- Here is the new _iwarmup.f,
_reptate.f has only one minor change to
include 'ifbounce=-1',_impsamp2.f has
to take into account that nstps_(iph) is changed by iwarmup, and that
some phases might be eleminated.