[lammps-users] Eigensolve for rigid body was not sufficiently accurate

Dear All:

I used fix rigid to contraint several atoms. There is no bonds specified for those atoms (in BONDS section). I only specified the same moleculeID in ATOMS section.

I tried to run the simulation, and got the “Eigensolve for rigid body was not sufficiently accurate.” error. I wonder what I should in order to solve this issue.

Thanks,
Hai

I don't see that error message in the LAMMPS source - are
you running the most current version?

Steve

So if the error is Insufficient Jacobi rotations, you can try
boosting the MAXJACOBI param at the top of fix_rigid.cpp
(and recompile), but it may be some degeneracy in your
rigid body. Sometimes if it is linear or planar and has
such symmetry, the eigensolve can break down.

Steve

Dear list:

    I want to pin an atom to a fixed position ( specifically, a monomer in the
polymer ) for the entire simulation. I found a command "fix freeze" which
seems to be able to do the job. However, it is for the granular style while
I'm using molecular style. Is there a way to do this in molecular style as
well?

   Thanks!

jiwu

If you set the force (fix setforce) and velocity on that atom to 0.0, it won't
move. Or you could only apply the integrator to all other atoms
via fix nve and the group command.

Steve

Hai,

I did a test to see if I could find the same problem you’ve had. I saw no problems with the system, even though I think I’m using the same initial coordinates as you used. Are you still having trouble with this? If so, could you send your input files?

Paul

Here’s the input I used:

units lj
atom_style atomic
neigh_modify every 1 delay 1
pair_style lj/cut 2.5
read_data data.rigid
group group1 id <> 1 7
group group2 id <> 8 14
fix 1 all rigid group group1 group2
thermo 1000
dump 1 all xyz 1 dump.xyz
timestep 0.01
run 10000

And here’s the data file:

LAMMPS data file for rigid bodies

14 atoms
1 atom types

-20 20 xlo xhi
-20 20 ylo yhi
-20 20 zlo zhi

Masses

1 1

Pair Coeffs

1 1 1

Atoms

1 1 0 0 0
2 1 3.5 0 0
3 1 -3.5 0 0
4 1 0 3.5 0
5 1 0 -3.5 0
6 1 0 0 3.5
7 1 0 0 -3.5
8 1 10 0 0
9 1 13.5 0 0
10 1 6.5 0 0
11 1 10 3.5 0
12 1 10 -3.5 0
13 1 10 0 3.5
14 1 10 0 -3.5

Velocities

1 5 1 0
2 5 1 0
3 5 1 0
4 5 1 0
5 5 1 0
6 5 1 0
7 5 1 0
8 -5 0 0
9 -5 0 0
10 -5 0 0
11 -5 0 0
12 -5 0 0
13 -5 0 0
14 -5 0 0

And here’s the output I’m seeing (with the current version of LAMMPS):

LAMMPS (12 Feb 2007)

Simple rigid body system

units lj
atom_style atomic
neigh_modify every 1 delay 1
pair_style lj/cut 2.5
read_data data.rigid
1 by 1 by 1 processor grid
14 atoms
14 velocities
group group1 id <> 1 7
7 atoms in group group1
group group2 id <> 8 14
7 atoms in group group2
fix 1 all rigid group group1 group2
2 rigid bodies with 14 atoms
thermo 1000
dump 1 all xyz 1 dump.xyz
timestep 0.01
run 10000
Memory usage per processor = 0.0793381 Mbytes
Step Temp E_pair E_mol TotEng Press
0 39.666667 0 0 12.75 0.001859375
1000 40.178059 0 0 12.914376 0.00092985584
2000 39.28431 0 0 12.6271 0.0014464881
3000 37.413848 -0.028086637 0 11.997793 0.0013699864
4000 37.332766 0 0 11.999818 0.0014201395
5000 38.60275 0 0 12.408027 0.0014776785
6000 38.602959 0 0 12.408094 0.0015006434
7000 41.545307 -0.12318418 0 13.230665 0.0010397888
8000 42.01757 0 0 13.505648 0.0013461063
9000 43.125334 0 0 13.861715 0.0016681002
10000 48.762053 0 0 15.673517 0.0018479633
Loop time of 8.171 on 1 procs for 10000 steps with 14 atoms

Pair time () = 0 (0) Neigh time () = 0.42 (5.14013)
Comm time () = 0.02 (0.244768) Outpt time () = 7.651 (93.636)
Other time (%) = 0.0800002 (0.979074)

Nlocal: 14 ave 14 max 14 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0

Total # of neighbors = 0
Ave neighs/atom = 0
Neighbor list builds = 4276
Dangerous builds = 0