Need help with understanding the run start/stop implement

Hi all,

I am trying to ramp temperature in multiple runs using the run start/stop command, like mentioned here and here.
I currently use the 5Feb18 version of LAMMPS. To give you a rough idea of what I am doing:

<initalisation, thermo, minimize>
reset_timestep 0

fix f1 all nve
fix f2 all temp/berendsen 3000 400 0.1

label l1
variable a loop 2
fix deposit
run 20000 start $(step) stop 40000
#instead of run 20000
next a
jump l1

There is definitely a difference between using two separate runs, and using the run start/stop command.
However, what I am unable to see is a uniform ramping over the entire 40000 time steps.

I have attached T vs time plots relevant to this discussion:

  1. Img1: Run 40000 steps with no break (and this is how I want the subsequent runs to resemble).

  2. Img2: Run 40000 steps. Using run start/stop, make 2 runs of 20000 steps each.

  3. Img3: Two separate runs of 20000 steps. Total steps still remains at 40000.

Is this the expected behavior? If yes, what must I do to make multiple runs which still resemble a single run?

Thanks a lot for your time.






I assume what you are trying to do is ramp the temp from T1 to T2

smoothly over several runs.

First try doing it w/out the loop. Just use several successive run commands

and specify the same start T1 and stop T2 values in each and

see what the temp does.

They you should be able to understand how to embed the same series

of run commands in a loop.


I have kept forgetting to reply to LAMMPS Users Mailing list… I think the problem should be solved by using a start time of 0 instead of $(step). I am posting my previous reply again:

Hi Syamal,

Just had a quick look at the document for run:

For example, consider this fix followed by 10 run commands:

fix         1 all nvt 200.0 300.0 1.0
run         1000 start 0 stop 10000
run         1000 start 0 stop 10000
run         1000 start 0 stop 10000

The NVT fix ramps the target temperature from 200.0 to 300.0 during a run. If the run commands did not have the start/stop keywords (just “run 1000”), then the temperature would ramp from 200.0 to 300.0 during the 1000 steps of each run. With the start/stop keywords, the ramping takes place over the 10000 steps of all runs together.

This explains why you did not get something you expected, as you have changed your start time.


yes, this is correct, same start and stop in each run.

Not start T1 and stop T2 as I wrote earlier. Good catch.