From 73186e4d26cf65d4f39fa152b06095d012e34abd Mon Sep 17 00:00:00 2001 From: jrgissing Date: Sun, 8 Mar 2020 16:06:49 -0600 Subject: [PATCH] correction to molecule-ID-increment logic --- src/GRANULAR/fix_pour.cpp | 8 +++++++- src/MISC/fix_deposit.cpp | 8 +++++++- src/create_atoms.cpp | 11 +++++++++-- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/GRANULAR/fix_pour.cpp b/src/GRANULAR/fix_pour.cpp index e04faa783b..25806a1ac8 100644 --- a/src/GRANULAR/fix_pour.cpp +++ b/src/GRANULAR/fix_pour.cpp @@ -672,7 +672,13 @@ void FixPour::pre_exchange() fixshake->set_molecule(nlocalprev,maxtag_all,imol,coord,vnew,quat); maxtag_all += natom; - if (mode == MOLECULE && atom->molecule_flag) maxmol_all++; + if (mode == MOLECULE && atom->molecule_flag) { + if (onemols[imol]->moleculeflag) { + maxmol_all += onemols[imol]->nmolecules; + } else { + maxmol_all++; + } + } } // warn if not successful with all insertions b/c too many attempts diff --git a/src/MISC/fix_deposit.cpp b/src/MISC/fix_deposit.cpp index 5befa19236..d2da7cb9da 100644 --- a/src/MISC/fix_deposit.cpp +++ b/src/MISC/fix_deposit.cpp @@ -609,7 +609,13 @@ void FixDeposit::pre_exchange() maxtag_all += natom; if (maxtag_all >= MAXTAGINT) error->all(FLERR,"New atom IDs exceed maximum allowed ID"); - if (mode == MOLECULE && atom->molecule_flag) maxmol_all++; + if (mode == MOLECULE && atom->molecule_flag) { + if (onemols[imol]->moleculeflag) { + maxmol_all += onemols[imol]->nmolecules; + } else { + maxmol_all++; + } + } if (atom->map_style) { atom->map_init(); atom->map_set(); diff --git a/src/create_atoms.cpp b/src/create_atoms.cpp index 0b2e1bd727..5325b8b9b1 100644 --- a/src/create_atoms.cpp +++ b/src/create_atoms.cpp @@ -492,9 +492,9 @@ void CreateAtoms::command(int narg, char **arg) for (int m = 0; m < natoms; m++) { if (molecule_flag) { if (onemol->moleculeflag) { - molecule[ilocal] = moloffset + i + onemol->molecule[m]; + molecule[ilocal] = moloffset + onemol->molecule[m]; } else { - molecule[ilocal] = moloffset + i+1; + molecule[ilocal] = moloffset + 1; } } if (molecular == 2) { @@ -530,6 +530,13 @@ void CreateAtoms::command(int narg, char **arg) } ilocal++; } + if (molecule_flag) { + if (onemol->moleculeflag) { + moloffset += onemol->nmolecules; + } else { + moloffset++; + } + } } // perform irregular comm to migrate atoms to new owning procs