Dear All LAMMPS Users/Developers,
To save time, when i usually use lammps to perform MD simulations, restart files will be output in my simulation. however, recently i used restart files which are output at differnt steps to continue a MD simulation and found that the results cannot match well. for example, in the original input file, restart files are output at regular intervals such as restart500,restart1000.
then i used these two restart files to continue a MD silulation and run to 2000-step, but their respective results are different. and how can i solve this problem?
in the two input files in which the two restart files (restart500 and restart1000) are used, i used such key lines which are the same as that in the original input file,
compute mytemp all temp/partial 1 0 1
fix 1 all nvt temp 0.5 0.5 0.005
fix_modify 1 temp mytemp
fix 2 lower setforce 0 0 0
fix 3 upper setforce 0 0 0
This normal as MD trajectories diverge. Have you read this section from the LAMMPS manual: http://lammps.sandia.gov/doc/Section_errors.html#err_1 ?
Ray
Yeah~ i read them. but i think my problem is not the same as that described in the manual, in which the difference is caused by different machines, different number of processors or some random number. Here both of my simulations are performed by using the same machines and the same number of processors. and there’s no random number in the input file. How do these difference come? i’m confused…
thank you for your reply.
Yeah~ i read them. but i think my problem is not the same as that described
in the manual, in which the difference is caused by different machines,
different number of processors or some random number. Here both of my
simulations are performed by using the same machines and the same number of
processors. and there's no random number in the input file. How do these
difference come? i'm confused...
you don't need a large change, a single bit difference is enough. and
that is easily possible, simply by having atoms stored internally in a
different order.
exactly this will happen when you read in a restart, which will
enforce a redistribution and sorting of atoms. this is due to the very
nature of floating point math.
if you want an MD simulation that is perfectly reproducible, you need
to write an MD code that uses fixed precision (e.g. using scaled
integers) and no thermostat, reneighboring in every step and so on.
axel.