[lammps-users] run command

Dear all,

I am interested in how I can ramp the temperature of the system using fix nvt in 100,000 steps but updating the “Tdamp” parameter, lets say, every 5,000 steps.
Is the approach below correct? Or is there any better suggestion?

Thanks in advance for your time and consideration,

Reza.

fix 1 all nvt temp 300.0 300.0 ${Tdamp1} tchain 5 tloop 100 nreset 1000

run 5000 start 0 stop 100000

unfix 1

fix 1 all nvt temp 300.0 300.0 ${Tdamp2} tchain 5 tloop 100 nreset 1000

run 5000 start 0 stop 100000

unfix 1

fix 1 all nvt temp 300.0 300.0 ${Tdamp3} tchain 5 tloop 100 nreset 1000

run 5000 start 0 stop 100000

unfix 1

fix 1 all nvt temp 300.0 300.0 ${Tdamp4} tchain 5 tloop 100 nreset 1000

run 5000 start 0 stop 100000




the documentation explains how to do (linear) temperature ramps with fix nvt/npt. with fix langevin you can also do different, non-linear curves through an equal style variable.
you do not do a ramp by changing the tdamp parameter. that does not make much sense.

axel.

Dear Axel,

Thanks for your reply.

  1. The scenario that I am implementing is as follows. Let’s say I am going to use these two fixes in the script:

fix 1 all nvt temp 300.0 300.0 $(100 * dt) tchain 5 tloop 100 nreset 1000

fix 2 all dt/reset 1 NULL NULL 0.01 units box

I run the simulation every 5,000 steps in loop-wise fashion. Basically, after this number of steps, I check the averaged temperature over a period of time using fix ave/time to make sure the temperature has reached the target value in an average sense. If it did not, then, I will run the simulation for another 5,000 steps again and again until getting the desired temperature.

However, there are instances, like in initiation of plasticity in a metal under a mechanical loading, where fix dt/reset makes significant changes to timestep value “dt”. Therefore, to follow strictly the (100*dt) rule for "Tdamp"in the "fix nvt", I want to unfix it and then replace it with (100*dt_new), let’s say. Assuming this way of thermostating makes sense, I was just looking for an alternative way of implementing the scheme above instead of using loops.

  1. By the way, could you please suggest a way of calculating elapsed simulation time in terms of “dt”? I mean that since I am using “fix dt/reset” I want to find this:

dt1 + dt2 + dt3 + dt4 + … + dtm

Many thanks in advance for your time and consideration,

Stay safe,

Reza.

This makes even less sense than what you wrote before.

If using fix dt/reset has such a large effect then your system must be in a highly non-equlibrium state and then any application of a thermostat is causing an arbitrary and likely unphysical modification of the kinetic energy. If you have a non-periodic system there is nothing to couple to and if it is periodic the same modification happens everywhere so changes in kinetic energy would be the physical response. The purpose of a thermostat is a different one.

Under these circumstances worrying about the relaxation time of a nose-hoover thermostat is quite pointless.

Axel