Problem with Fix rigid/nvt/small


I have been having some trouble getting fix rigid/nvt/small to run with my system. In particular, I am trying to hold the bond lengths of 5,000 HF molecules constant in a bath of 50,000 argon atoms. Whenever I use the fix rigid/nvt/small command, the first timestep is printed (time=0), and then a bunch of mpi segmentation fault errors are thrown. Other fixes work with this same input deck (fix shake, fix nve, fix nvt). We tried this on two different clusters, and got the same mpi errors. The version of lammps that I am using is the February 10, 2015 release. I have attached my data file, my input deck, and the error file to this email. I would really appreciate any insight into what the problem may be.



Run0048_in.lammps (1.01 KB)

Run0048_lammps.dat (2.34 MB)

Run0048error.txt (2.95 KB)

Found the bug and fixed it. Will be in next patch.

Also noticed that your system defines 55000 rigid bodies,

b/c you are using group all. Which means all your monomers

are rigid bodies, which will cause other problems.

You want something like this:

group HF type 3 4
fix 1 HF rigid/nvt/small molecule temp 298.0 298.0 100.0

Added an error test to check for 1-atom rigid bodies.

Thanks for the test script,


Yes, this is a bug.

Thanks for reporting the issue. I believe Steve has fixed it in the next patch.


— a/src/RIGID/fix_rigid_nh_small.cpp
+++ b/src/RIGID/fix_rigid_nh_small.cpp
@@ -741,7 +741,7 @@ void FixRigidNHSmall::final_integrate()
// include Langevin thermostat forces
// fflag,tflag = 0 for some dimensions in 2d

  • for (ibody = 0; ibody < nbody; ibody++) {
  • for (ibody = 0; ibody < nlocal_body; ibody++) {
    Body *b = &body[ibody];

// update vcm by 1/2 step