About the correctness of molecule finding in LAMMPS

Hi Oleg,

I think this could be helpful to other users, so I am cc’ing the mailing list, thanks.

From your description below, the atoms are connected in this fashion " 1–5--2–10 ". When deciding the clusterIDs of atoms, e.g. 2 and 10, based on bond orders, clusterIDs of both atoms 2 and 10 will be set to the smaller global ID (or atom tag) of atoms 2 and 10. E.g. if atom 2 has an global ID (atom tag) of 31 and atom 10 has an atom tag 17, clusterIDs of both atoms will be set to 17. This deciding process continues iteratively across MPI processes until there are no further changes. Ultimately, atoms 1, 5, 2 and 10 will have one clusterID that is the smallest atom tag of these four atoms.

This clusterID deciding process used in fix species is adopted from compute cluster/atom. Reading compute_cluster_atom.cpp source code might help as well.

Ray

Dear Ray,

This deciding process continues iteratively across MPI processes until there are no further changes.

I think this is the answer to my question. I supposed that each atom was checked only once. Indeed, convergence is achieved by

  if (bo_tmp > bo_cut) {
    clusterID[i] = clusterID[j] = MIN(clusterID[i],clusterID[j]);
    done = 0;

and

  if (!done) change = 1;
  if (done) break;

Now I understand. Thanks for your help.

Oleg.