[lammps-users] About the error: "Bad principal moments"

Hi, Steve

I encounter the error msg “Bad principal moments” when applying “fix rigid” on a group of atoms.

I’ve found a earlier reply from you saying that highly symmetric rigid body can cause such problem sometimes.

Is there any effective solution for handling this problem if a highly symmetric rigid body (like a spherical tip) is do required to be constructed?

Just try constructing a body with various shapes or size until the lammps accept one of them?

Thanks very much!

hi bin shen,

the solution is to create a derivative class for fix rigid,
that knows how to handle rigid bodies with degenerate
moments of inertia. those are used to define the orientation
of your rigid object, so that it can be moved as a whole
(by computing the movement of the center of mass and the
rotation around it seperately). that would need to be somewhat
adjusted to your specific problem, but not really a big deal.
just have a look into a textbook on the mechanics of rigid bodies
in case you have additional questions.


Can you post a geometry of atoms that fix rigid complains
about with that error - on the 1st timestep?


The code I used to construct the geometry of the rigid cylinder or spherical tip in my model is as follows:

I'll need the entire input script and data file (if the latter
is used).


The input script is attached.

Kind Regards!

Bin Shen

saga_gen.lmpin (2.79 KB)

This was an issue with too tight a tolerance on computing the
moments of inertia for rigid bodies with lots of atoms. I posted
a patch.

Note however that these commands

fix e4 tip rigid single
fix freezeXZ tip setforce 0.0 NULL 0.0

indicate you really don't need a rigid body. If you just want
the group of atoms to move collectively in y (not in x,z) then
you can use fix aveforce and no rigid body.