[lammps-users] insufficient Jacobi rotations

Dear Lammps-users,

I am doing simulations on a system of 3-member linear rigid bodies using fix rigid and the lj/cut/coul/long pair potential. I get the following error during equilibration:

"ERROR: Insufficient Jacobi rotations for rigid body", which means that "Eigensolve for rigid body was not sufficiently accurate."

I checked the configuration of my rigid bodies and they are as they should be (exactly co-linear). I've tried changing MAXJACOBI in fix_rigid.cpp from the original 50 to 100, 200 and 250, but the problem seems to be independent of this value. (I get the error at the same timestep irrespective of the MAXJACOBI value). The other thermodynamic quantities seem normal up until the timestep where I get "nan," so I am not sure what is causing this error.

If anyone has any insights into why the Jacobi routine would fail, please let me know. I appreciate any help!


The jacobi calculation is only done once before a run begins, on
each rigid body. So I don't know what you mean by it
happens on a certain timestep. If there is one (or more)
bodies that are failing in jacobi(), then you should be able
to reproduce it on a 0-timestep run, where the 3 atoms are
in a restart file or data file, and the whole simluation
is just those 3 atoms. Can you create such an input
script or print out the coords of the 3 atoms before
the jacobi routine is called on them?


BTW, if you have a bunch of 3-atom rigid bodies,
you'e probably be better off using fix shake than
fix rigid. Shake both the bond lengths and angle.
I think co-linear is no problem for SHAKE, though
you might want to use the angle_style cosine ff.


That's strange: My simulation works for 31 timesteps before I get "nan" from the thermo output. Then at the end of the output I get the Jacobi rotations error. If the Jacobi routine is run just once at the beginning of the run, then I don't understand why things work for a bit, then fail, then I get this error. If I run a simulation for 30 timesteps, then the simulation exits cleanly with no error. I checked the configurations and it doesn't make sense why it should cause a problem. My guess is that the Jacobi error is a red herring?

thanks for the help. I will investigate other possibilities for the nan's,


PS: SHAKE cannot handle an angle constraint of exactly 180 degrees.

Steve Plimpton wrote: