[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