- Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by author ] [ by messages with attachments ]

From: Thomas Cheatham <tec3.utah.edu>

Date: Thu, 14 Sep 2006 22:33:42 -0600 (Mountain Daylight Time)

*> I am trying to do a simulated annealing run on a protein polymer, and
*

*> as a test run I ran a simple job in which I tried to heat the system to
*

*> 700 K over the course of 1 ps. For some reason the temperature only rose
*

*> to 450 K. Could the size of my system be the problem (2700 protein
*

1 ps is a rather short simulation...

*> &cntrl
*

*> ntt=1,
*

*> /
*

*> &wt type='TEMP0', istep1=0, istep2=1000, value1=0, value2=700,/
*

*> &wt type='TAUTP', istep1=0, istep2=1000, value1=0.2, value2=0.2,/
*

*> &wt type='END'/
*

Here you are trying to raise the temperature from 0 to 700K using

Berendsen temperature coupling with a time constant of 0.2 ps. What this

temperature coupling does is scale the velocities with a factor that is

preportional to the deviation of the instantaneous or current kinetic

energy to the desired value multiple by a time factor that controls how

strong the coupling is. This scaling has a decay, specifically the

coupling time. As the coupling time (TAUPTP) becomes progessively larger,

the effective scaling is diminished. In the limit of very large TAUTP,

essentially no scaling is done (which is ultimately desirable).

If TAUTP = DT (the time step), then the scaling has no decay and the

velocities are scaled preportionally to the deviation in temperature at

each step.

The scale factor on the velocities X, is (loosely, see the Berendsen

paper for more detail) such that

X*X = 1 + DT/TAUTP(T_desired/T_current - 1)

Let's look at your case. Over 1000 steps, the velocity jumps from 0 to

700. So, if you map the target temperature at each step "N", the target

temperature should be N * 700/1000. You do not even set the target

temperature to 700K until step 1000 (i.e. at 1 ps). However this is not

why the temperature stays at 450K.

Your scaling factor is .2 ps or (200 fs) such that the scaling at each

step is ~ sqrt [ 1 + 0.001 / .2 * (T_desired/T_current - 1) ] or

~ sqrt [ 1 + 0.005 * T_desired/T_current - 0.005 ]

= sqrt [ 0.995 + 0.005 * (T_desired/T_current) ]

If your desired temperature is 700K and current temperature is 450K,

effective scaling of the temperature at each step is only by sqrt(1.00278)

or less than 0.14%.

If you really want to ramp the temperature in 1 ps, you will likely

have to set the coupling time to be very close to DT and ramp the

temperature to 700K sooner.

Realistically, for a simple pure water system, equilibration occurs on a

~50-100 ps time scale. Nowadays it is routine to run ~1-5 ns of

equilibration of the water/ions (restraining the solute). You might be

able to get away with 500 ps (with the TAUTP you choose) but 1 ps is

definately unreasonable. Even if you did instantaneous scaling at each

step, if you continued the simulation after 1 ps without temperature

control, it is very unlikely that you would maintain 700K...

--tom

-----------------------------------------------------------------------

The AMBER Mail Reflector

To post, send mail to amber.scripps.edu

To unsubscribe, send "unsubscribe amber" to majordomo.scripps.edu

Received on Sun Sep 17 2006 - 06:07:17 PDT

Date: Thu, 14 Sep 2006 22:33:42 -0600 (Mountain Daylight Time)

1 ps is a rather short simulation...

Here you are trying to raise the temperature from 0 to 700K using

Berendsen temperature coupling with a time constant of 0.2 ps. What this

temperature coupling does is scale the velocities with a factor that is

preportional to the deviation of the instantaneous or current kinetic

energy to the desired value multiple by a time factor that controls how

strong the coupling is. This scaling has a decay, specifically the

coupling time. As the coupling time (TAUPTP) becomes progessively larger,

the effective scaling is diminished. In the limit of very large TAUTP,

essentially no scaling is done (which is ultimately desirable).

If TAUTP = DT (the time step), then the scaling has no decay and the

velocities are scaled preportionally to the deviation in temperature at

each step.

The scale factor on the velocities X, is (loosely, see the Berendsen

paper for more detail) such that

X*X = 1 + DT/TAUTP(T_desired/T_current - 1)

Let's look at your case. Over 1000 steps, the velocity jumps from 0 to

700. So, if you map the target temperature at each step "N", the target

temperature should be N * 700/1000. You do not even set the target

temperature to 700K until step 1000 (i.e. at 1 ps). However this is not

why the temperature stays at 450K.

Your scaling factor is .2 ps or (200 fs) such that the scaling at each

step is ~ sqrt [ 1 + 0.001 / .2 * (T_desired/T_current - 1) ] or

~ sqrt [ 1 + 0.005 * T_desired/T_current - 0.005 ]

= sqrt [ 0.995 + 0.005 * (T_desired/T_current) ]

If your desired temperature is 700K and current temperature is 450K,

effective scaling of the temperature at each step is only by sqrt(1.00278)

or less than 0.14%.

If you really want to ramp the temperature in 1 ps, you will likely

have to set the coupling time to be very close to DT and ramp the

temperature to 700K sooner.

Realistically, for a simple pure water system, equilibration occurs on a

~50-100 ps time scale. Nowadays it is routine to run ~1-5 ns of

equilibration of the water/ions (restraining the solute). You might be

able to get away with 500 ps (with the TAUTP you choose) but 1 ps is

definately unreasonable. Even if you did instantaneous scaling at each

step, if you continued the simulation after 1 ps without temperature

control, it is very unlikely that you would maintain 700K...

--tom

-----------------------------------------------------------------------

The AMBER Mail Reflector

To post, send mail to amber.scripps.edu

To unsubscribe, send "unsubscribe amber" to majordomo.scripps.edu

Received on Sun Sep 17 2006 - 06:07:17 PDT

Custom Search