Using “restart 1000 restart.” command in a in. file,then restart the simulation.

If I restart my simulation from file ‘restart.1000’, but DO NOT include “restart 1000 restart.” command in the in. file, the thermodynamic data only match between 1000-2000 timestep and donot math timestep that over 2000.

If I restart my simulation from “restart.1000” and include “restart 1000 restart.*” command ;the thermodynamic data match all timesteps.

Using “restart 1000 restart.*” command in a in.* file,then restart the
simulation.

If I restart my simulation from file ‘restart.1000’, but DO NOT include
“restart 1000 restart.*” command in the in.* file, the thermodynamic data
only match between 1000-2000 timestep and donot math timestep that over
2000.

If I restart my simulation from “restart.1000” and include “restart 1000
restart.*” command ;the thermodynamic data match all timesteps.

MD is based on solving a system of linear partial differential
equations, which is a system that can exhibit chaotic behavior.

in practice this means that the tiniest change will eventually lead to
a diverging trajectories. since we are using floating point math and
floating point math is not associative (i.e. the exact result depends
on the order of operations) you get slightly different forces whenever
you change the order of how you sum of forces. this exactly happens
when you rebuild the neighbor lists, which is enforced whenever you
write a restart.

you will see the same kind of (usually exponential) behavior, if you
run with a different kind of MPI tasks or use accelerated/optimized
force kernels vs. the standard ones and so on.

it doesn't matter in the grand scheme of things, since the individual
exact trajectory is practically meaningless in MD. what you care about
are ensemble averages and time averages, and *those* are independent
from those deviations. in fact, sampling over multiple of deliberately
decorrelated trajectory can be a way to test your statistical
efficiency.