Page 1 of 1
monitor temperature during molecular dynamics
Posted: Mon Jan 10, 2011 4:59 pm
by sschmerler
Hello
I recently tried Abinit's MD engine (v6.4.2, ionmov 8) to test the Nose-Hoover thermostat. However, the code does not seem to print the temperature at each time step. Is there an input variable to activate this which I may have overlooked? Thank you for your time.
best,
Steve
Re: monitor temperature during molecular dynamics
Posted: Mon Jan 17, 2011 6:08 pm
by sschmerler
To partly answer my own question: First, a correction: I did test ionmov 13
because, according to the documentation, only for this case are Nose-Hoover
chains implemented (I'd like to do NPT-MD according to MTTK [1] anyway):
ionmov 13
optcell 2
dtion 20
nnos 3
# defaults
qmass 10 10 10
bmass 10
mditemp 300
mdftemp 300
Entering some write statements in 95_drive/moldyn.F90, I found that the
temperature (ktemp/kb_HaK) is actually constant at 300.0 from the first time
step on (with different qmass = 10 .. 50). This puzzles me a bit because I
expected the temperature to fluctuate around its mean value. Maybe I'm missing
something very obvious regarding the MTTK method. If I read the code right, the
atomic velocities are updated at each time step to produce the target
temperature, yes?
I do not want a temperature ramp from mditemp to mdftemp over nstep steps, but
thermostat the system from the beginning. Is setting mditemp==mdftemp correct
here for that purpose?
And: What exactly are the units of qmass and bmass, i.e. are they the Q and W
parameters from [1]?
Thank you very much.
best,
Steve
[1] Mol. Phys. 87(5), pp 1117, 1996
Re: monitor temperature during molecular dynamics
Posted: Sat Mar 05, 2011 12:19 am
by mverstra
sschmerler wrote:To partly answer my own question: First, a correction: I did test ionmov 13
because, according to the documentation, only for this case are Nose-Hoover
chains implemented (I'd like to do NPT-MD according to MTTK [1] anyway):
ionmov 13
optcell 2
dtion 20
nnos 3
# defaults
qmass 10 10 10
bmass 10
mditemp 300
mdftemp 300
Entering some write statements in 95_drive/moldyn.F90, I found that the
temperature (ktemp/kb_HaK) is actually constant at 300.0 from the first time
step on (with different qmass = 10 .. 50). This puzzles me a bit because I
expected the temperature to fluctuate around its mean value. Maybe I'm missing
something very obvious regarding the MTTK method. If I read the code right, the
atomic velocities are updated at each time step to produce the target
temperature, yes?
if T=const it sounds more like the velocities are being rescaled, instead of a thermostat being used, which I agree should give fluctuations around the mean value. Have you checked the subroutine to make sure a NH thermostat is being used?
I do not want a temperature ramp from mditemp to mdftemp over nstep steps, but
thermostat the system from the beginning. Is setting mditemp==mdftemp correct
here for that purpose?
yes, this should be correct
Normally the masses and notations should be those of your ref:
[1] Mol. Phys. 87(5), pp 1117, 1996
Matthieu
Re: monitor temperature during molecular dynamics
Posted: Thu Mar 17, 2011 9:13 am
by sschmerler
Thanks for answering.
if T=const it sounds more like the velocities are being rescaled, instead of a thermostat being used, which I agree should give fluctuations around the mean value. Have you checked the subroutine to make sure a NH thermostat is being used?
I checked again and yes, a thermostat is beeing used. Rescaling is done only at
time step 0 to bring the atoms to the requested start temperature. For each MD
step, I calculated the temperature from the atomic velocities ("KIN+POT.En." -
etot or "vel") and it fluctuates as expected. However the mean is always
somewhat (50 --100 K) higher than the target temp, which may be due to
non-optimal thermostat masses.
Thanks again.
best,
Steve
Re: monitor temperature during molecular dynamics
Posted: Wed Oct 24, 2018 2:50 pm
by Riping
Dear All,
The temperature is usually several hundrads higher than the target temperature, when using ionmov=13 optcell=2.
For example, when I set 1000 K, it finally give the average value of 1400K.
Usually, how to solve this problem?
Thank you very much.
Best regards.
Riping Wang
2018.10.24