[Pw_forum] question on slow rescaling of velocities

Eduardo Ariel Menendez P emenendez at macul.ciencias.uchile.cl
Wed Feb 7 13:46:41 CET 2007


Thanks Stefano for the clariying this issue. I have a humble suggestion
for the documentation (INPUT_PW), which is just a feedback from my own
doubts and time spent thinking and testing.

This is a section of INPUT_PW

delta_t        REAL ( default = 1.D0 )
               delta_t = 1                 : every 'nraise' step the actual
                                             temperature is rescaled to tempw
               delta_t /= 1 && delta_T > 0 : at each step the temperature is
                                             multiplied by delta_t; this is
                                             done rescaling all the velocities.
               delta_t < 0                 : every 'nraise' steps temperature
                                             is reduced by -delta_T
               This keyword is NOT used in the case of variable cell
               calculations.

This is the way that would be instantly clear to my twin brother or my
clon, with a few more bytes of disk space.

delta_t        REAL ( default = 1.D0 )
               delta_t = 1                 : every 'nraise' step the instantaneous
                                             temperature is rescaled to tempw
               delta_t /= 1 && delta_T > 0 : at each step the instantaneous temperature is
                                             multiplied by delta_t; this is
                                             done rescaling all the velocities. See comment
                                             below.
               delta_t < 0                 : every 'nraise' steps the instantaneous temperature
                                             is reduced by -delta_T. See comment below.
               This keyword is NOT used in the case of variable cell
               calculations.
               The instantaneous temperature is calculated at the end of every
               ionic move and BEFORE rescaling. This is the temperature reported
               in the main output.
               For delta_t /= 1, the actual average rate of heating or cooling
               should be rougly C*delta_t/(nraise*dt) (C=1 for an
               ideal gas, C=0.5 for a harmonic solid, theorem of energy
               equipartition between all quadratic degrees of freedom).

Regards
Eduardo

> Message: 7
> Date: Mon, 05 Feb 2007 22:51:29 +0100
> From: degironc <degironc at sissa.it>
> To: pw_forum at pwscf.org
> Subject: Re: [Pw_forum] question on slow rescaling of velocities
> Reply-To: pw_forum at pwscf.org
>
> Temperature rescaling is performed in PW/dynamics_module.f90.
> Look for delta_t  and you'll find that
>
>       ! ... delta_t, nraise are used to change the temperature as follows:
>       !
>       ! ... delta_t = 1 :                   every 'nraise' step the actual
>       ! ...                                 temperature is rescaled to the
>       ! ...                                 initial value.
>       ! ... delta_t /= 1 and delta_t > 0 :  at each step the actual
> temperature
>       ! ...                                 is multiplied by delta_t;
> this is
>       ! ...                                 done rescaling all the
> velocities.
>       ! ... delta_t < 0 :                   every 'nraise' step the
> temperature
>       ! ...                                 reduced by -delta_t.
>       !
> Searching further for delta_t you'll find the actual code dealing with
> temperature rescaling
> (which is rather straightforward).
>
> Thus for delta_t < 0 every nraise steps the kinetic energy is rescaled
> so as to
> reduce the (istantaneous) temperature by delta_t .
> Temperature rescaling is a way to extract energy from your system by
> reducing
> the kinetic energy, however kinetic and potential energy are roughly in
> equilibrium
> (energy equipartition between all quadratic degrees of freedom if you
> are close to
> equilibrium) thus the amount of energy you should extract is roughly
> twice the change
> in kinetic energy (temperature) that you want at the end.
>
> An alternative could be (I think, never actually tried) to restart the
> calculation setting the
> input temperature to the desired temperaure and define delta_t=1 and
> nraise to something like
> 50-100. In this way every nraise steps the temperature (calculated as
> the average kinetic energy
> in the last nraise steps) will be rescaled to the input temperature.
> Within a few rescaling cycles
> it should stabilize at the desired temperature.
>
> stefano
>
>
> Eduardo Ariel Menendez P wrote:
>
> >Hi,
> >I am changing the temperature of a sample from 3000 to 1360 K. I thought
> >that with the setting below the temperature would rescale in 200 steps,
> >but it goes much more slowly.
> >
> > &IONS
> >                ion_dynamics = 'verlet' ,
> >                     upscale = 10.D0 ,
> >             ion_temperature = 'rescaling' ,
> >                       tempw = 3000.D0 ,
> >                        tolp = 1.D-3 ,
> >                        nraise = 1,
> >                        delta_t = -8.2D0,
> >
> >1) IS there somthing wrong in this setting?
> >2) Is the net temperature rescaling equal to delta_t*nstep/nraise, or this
> >is only an estimate?
> >3) It seems that I must either scale longer time or increase delta_t. Is
> >there any other option?
> >
> >Thanks
> >Eduardo
> >_______________________________________________
k



More information about the users mailing list