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