Fix NPT all rigid/npt/small, error in max distance from body owner to body atom calculation

Hello everyone,

I’ve been working on trying to equilibrate an proton-disordered ice sample using TIP4p potential using LAMMPS (2 Aug 2023 - Update 3). I created the sample using genice with 1h TIP4p description and then added necessary flags to the .lmp file to be read by the input script. However, when I run the file I get an error: Rigid body extent 20.85979200728954 > ghost atom cutoff.

I have attached my input script as well as my datafile. What I’m struggling with understanding is the fix NPT all rigid/npt/small command. My understanding is that it should automatically calculate the max distance from body owner to body atom of a water molecule. This should be a small value, less than an angstrom. However, when I try to run it my distance is close to the size of my box at 20.859792. I have specified pointers so the NPT fix correctly identifies the molecules and reduces the distance to no avail.

I have attempted to use the comm_modify cutoff 21 but that makes my system collapse into a singularity with a large density which crashes the simulation.

Thank you for your time and I looking forward to deepening my understanding and finding a solution together.

tip4p-2005-2.lmp (134.9 KB)
in.lammps (1.1 KB)

That means you have defined a rigid body with atoms that are far apart.
This is usually a problem with your geometry, for example when you have atoms in the rigid body that are on the “other side” of the box due periodic boundaries.

This cannot work unless you assign the suitable image flag values to those atoms.

Sorry for taking so long to reply.

I looked at my box after your comment (the image is attached) and I noticed that there are hydrogen atoms are on the “other side.” You mentioned suitable image flag values, how do I assign them? If you can provide me with a resource to explore this that would wonderful.

As always thank you for your help.

Vikentiy

Image flags are explained within the LAMMPS manual in several places.

Since you read your initial configuration from a data file, the simplest approach would be to add them to the Atoms section of the data file. See the read_data documentation.

Thank you