diff --git a/src/USER-REAXC/fix_reaxc.cpp b/src/USER-REAXC/fix_reaxc.cpp index 1323ff4da7..361733f3ca 100644 --- a/src/USER-REAXC/fix_reaxc.cpp +++ b/src/USER-REAXC/fix_reaxc.cpp @@ -41,16 +41,15 @@ FixReaxC::FixReaxC(LAMMPS *lmp,int narg, char **arg) : { // perform initial allocation of atom-based arrays // register with atom class - + + oldnmax = 0; num_bonds = NULL; num_hbonds = NULL; grow_arrays(atom->nmax); atom->add_callback(0); // initialize arrays to MIN so atom migration is OK the 1st time - - for (int i = 0; i < atom->nmax; i++) - num_bonds[i] = num_hbonds[i] = MIN_REAX_BONDS; + // it is done in grow_arrays() now // set comm sizes needed by this fix @@ -98,6 +97,11 @@ void FixReaxC::grow_arrays(int nmax) { memory->grow(num_bonds,nmax,"reaxc:num_bonds"); memory->grow(num_hbonds,nmax,"reaxc:num_hbonds"); + for (int i = oldnmax; i < nmax; i++) { + num_hbonds[i] = MIN_REAX_HBONDS; + num_bonds[i] = MIN_REAX_BONDS; + } + oldnmax = nmax; } /* ---------------------------------------------------------------------- diff --git a/src/USER-REAXC/fix_reaxc.h b/src/USER-REAXC/fix_reaxc.h index 0e173f5ece..6a37002847 100644 --- a/src/USER-REAXC/fix_reaxc.h +++ b/src/USER-REAXC/fix_reaxc.h @@ -56,6 +56,7 @@ class FixReaxC : public Fix { int maxhbonds; // max # of Hbonds for any atom int *num_bonds; // # of bonds for each atom int *num_hbonds; // # of Hbonds for each atom + int oldnmax; // arrays' size before growing }; }