Use of shake in lammps

Hello everyone,

I know something similar to what I am about to ask has been asked before (http://lammps.sandia.gov/threads/msg24771.html for anyone who comes across this in the future), but I still can’t seem to figure out whats going on.

I understand that shake historically was used for the verlet algorithm where velocities aren’t calculated explicitly, and that rattle came about to deal with the velocity verlet algorithm. For velocity verlet algorithms, I have always read that integration goes something like.

calculate velocity at mid pt
calculate position at t + deltat
call shake
calculate force
calculate velocity at t + delta
call rattle

however, when I look at lammps, It seems to go

calculate velocity at mid pt
calculate position at t + deltat
calculate force

call shake
calculate velocity at t + delta

I am looking at the shake.f file (sorry I am looking at 2001 fortran version since I know fortran best), and seems to be only an updating of the force and not the velocity as would be done in a rattle. Could someone elaborate for me whats going on here? The fix shake command description doesn’t seem to be telling me what I am looking for.

conor

I don’t remember what is in the Fortran version, but in current LAMMPS there

is a fix shake and a fix rattle, and the doc pages discuss the difference.

Steve