[CP2K:1819] Re: Example input

Ondrej Marsalek ondrej.... at gmail.com
Sat Mar 21 17:56:05 UTC 2009


Allow me to explore this further "aloud".

Looking at the code, it seems that the idea is to switch off the outer
SCF cycle if there is enough wfn history and either SCF/MAX_SCF_HIST or
SCF/EPS_SCF_HIST are set. There is a subroutine for doing that,
wfi_set_history_variables() in file qs_wf_history_methods.F. Then, there
is the following switch:

qs_wf_history_methods.F:832:       SELECT CASE (actual_extrapolation_method_nr)

for each of its cases, the mentioned subroutine gets called, except for
cases wfi_linear_ps_method_nr and wfi_aspc_nr, where a similar thing is
done with explicit code instead of the call. The difference is that the
explicit code fails to disable the outer SCF loop (or rather decrease
its EPS_SCF) in the case that only SCF/EPS_SCF_HIST is set.

It seems that exchanging the explicit code for the call would resolve
the issue.

One more thought in this area. It could be useful to mention in the
input manual that setting MAX_SCF_HIST disables the outer SCF loop once
we are in the "history pipeline filled" regime.

Cheers,
Ondrej

PS: As a quick fix to the previous issue without recompilation, I have
set SCF/MAX_SCF_HIST to an arbitrary value that is high enough not to
influence the run.


On Sat, Mar 21, 2009 at 17:29, Ondrej Marsalek
<ondrej.... at gmail.com> wrote:
> Hi again,
>
> I am doing some test runs and hopefully making some progress. One thing
> does not work as expected, though. I have the following SCF section:
>
> &SCF
>    EPS_SCF 1.0E-7
>    MAX_SCF 30
>    EPS_SCF_HIST 1.0E-4
>    SCF_GUESS atomic
>    &OT
>        MINIMIZER DIIS
>        PRECONDITIONER FULL_KINETIC
>        STEPSIZE 0.1
>    &END OT
>    &OUTER_SCF T
>        MAX_SCF 50
>        EPS_SCF 1.0E-7
>    &END OUTER_SCF
>    &PRINT
>        &RESTART_HISTORY
>            ADD_LAST NUMERIC
>            BACKUP_COPIES 7
>            FILENAME =W32-neat-RESTART_HISTORY.wfn
>            &EACH
>                __ROOT__ 1
>                MD 1
>                QS_SCF 0
>            &END EACH
>        &END RESTART_HISTORY
>    &END PRINT
> &END SCF
>
> After collecting enough points for the extrapolation, the outer SCF loop
> never converges. There is always just one inner SCF iteration (as it
> stays below EPS_SCF_HIST all the time) and then the next outer SCF
> interation, until the limit of 50 iteration is exceeded. It looks like
> the outer SCF is trying to reach its EPS_SCF. When I exchange SCF /
> EPS_SCF_HIST for SCF / MAX_SCF_HIST, it works fine.
>
> Thanks for any help,
> Ondrej
>
>
> On Mon, Mar 2, 2009 at 09:51, Matthias Krack <matthia... at psi.ch> wrote:
>>
>> Dear Ondrej,
>>
>> you have to select the ENSEMBLE LANGEVIN together with the
>> EXTRAPOLATION ASPC (which is now the default). Activate the printing
>> of the RESTART_HISTORY to enable a smoother restart of consecutive
>> runs. Then you have to find the appropriate gamma values for your
>> system. Here is a CP2K input template showing the essential parts
>> needed for the setup:
>>
>> &MOTION
>>  &MD
>>  ENSEMBLE LANGEVIN
>>  &LANGEVIN
>>   GAMMA [fs^-1] 1.0E-3 # "Langevin" gamma (adapt for your system)
>>   NOISY_GAMMA [fs^-1] 3.0E-5 # dissipative gamma (adapt for your
>> system)
>>  &END LANGEVIN
>>  ...
>>  &END MD
>> &END MOTION
>>
>> &FORCE_EVAL
>>  METHOD Quickstep
>>  ...
>>  &DFT
>>  WFN_RESTART_FILE_NAME <project>-RESTART_HISTORY.wfn
>>  &QS
>>   EXTRAPOLATION ASPC
>>   EXTRAPOLATION_ORDER 3 # find the best for your system
>>   ...
>>  &END QS
>>  &SCF
>>   EPS_SCF 1.0E-7
>>   EPS_SCF_HIST 1.0E-5
>>   MAX_SCF 40
>>   #MAX_SCF_HIST 2 # instead of EPS_SCF_HIST for a fixed number of SCF
>> steps
>>   SCF_GUESS history_restart
>>   ...
>>   &OT ON
>>    MINIMIZER DIIS
>>    PRECONDITIONER FULL_KINETIC # try the cheapest first
>>    STEPSIZE 0.1
>>   &END OT
>>   &OUTER_SCF
>>    EPS_SCF 1.0E-7
>>    MAX_SCF 50
>>   &END OUTER_SCF
>>   &PRINT
>>    &RESTART_HISTORY
>>     ADD_LAST NUMERIC
>>     BACKUP_COPIES 5 # ASPC order + 2
>>     FILENAME =<project>-RESTART_HISTORY.wfn
>>     &EACH
>>      __ROOT__ 1
>>      MD 1
>>      QS_SCF 0
>>     &END EACH
>>    &END RESTART_HISTORY
>>   &END PRINT
>>   ...
>>  &END SCF
>>
>> Note, the gamma values are only given to provide some reasonable
>> starting values w.r.t. their relative size and the order of magnitude.
>> You may select a fixed (very low) number of SCF iteration steps using
>> MAX_SCF_HIST or a less tight SCF convergence criterion using
>> EPS_SCF_HIST. Please, keep in mind that the procedure only pays back,
>> if you are planning long simulation runs, since setup, thermalization
>> and the adjustment of the gamma values requires already several ps of
>> simulation time.
>>
>> Best regards,
>>
>> Matthias
>>
>>
>> On Feb 27, 8:00 pm, Ondrej Marsalek <ondrej.... at gmail.com> wrote:
>>> Dear CP2K users,
>>>
>>> I am interested in the method described in this paper:
>>>
>>> Thomas D. Kuhne and Matthias Krack and Fawzi R. Mohamed and Michele
>>> Parrinello: Efficient and Accurate Car-Parrinello-like Approach to
>>> Born-Oppenheimer Molecular Dynamicshttp://link.aps.org/abstract/PRL/v98/e066401
>>>
>>> Unfortunately, I have trouble mapping the paper to a working
>>> computational setup and CP2K input. Would anyone be willing to provide
>>> an example?
>>>
>>> Thank you,
>>> Ondrej Marsalek
>> >>
>>
>



More information about the CP2K-user mailing list