diff --git a/src/QEQ/fix_qeq_point.h b/src/QEQ/fix_qeq_point.h index db70444311..eae9603bf5 100644 --- a/src/QEQ/fix_qeq_point.h +++ b/src/QEQ/fix_qeq_point.h @@ -56,6 +56,8 @@ This is the size of the matrix. E: Fix qeq/point has insufficient QEq matrix size -UNDOCUMENTED +Occurs when number of neighbor atoms for an atom increased too much +during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and +recompile. */ diff --git a/src/QEQ/fix_qeq_shielded.h b/src/QEQ/fix_qeq_shielded.h index 73ff7b05fd..f9e1e0172e 100644 --- a/src/QEQ/fix_qeq_shielded.h +++ b/src/QEQ/fix_qeq_shielded.h @@ -74,6 +74,8 @@ This is the size of the matrix. E: Fix qeq/shielded has insufficient QEq matrix size -UNDOCUMENTED +Occurs when number of neighbor atoms for an atom increased too much +during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and +recompile. */ diff --git a/src/QEQ/fix_qeq_slater.h b/src/QEQ/fix_qeq_slater.h index 71754b94e9..bf1a98a6d5 100644 --- a/src/QEQ/fix_qeq_slater.h +++ b/src/QEQ/fix_qeq_slater.h @@ -79,6 +79,8 @@ This is the size of the matrix. E: Fix qeq/slater has insufficient QEq matrix size -UNDOCUMENTED +Occurs when number of neighbor atoms for an atom increased too much +during a run. Increase SAFE_ZONE and MIN_CAP in fix_qeq.h and +recompile. */ diff --git a/src/fix_ave_chunk.cpp b/src/fix_ave_chunk.cpp index 881ea69b15..921c6863e0 100644 --- a/src/fix_ave_chunk.cpp +++ b/src/fix_ave_chunk.cpp @@ -298,7 +298,8 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) : // increment lock counter in compute chunk/atom // only if nrepeat > 1 or ave = RUNNING/WINDOW, - // so that locking spans multiple timesteps + // so that locking spans multiple timesteps + // set lock here for ave = RUN/WINDOW or in end_of_step() for nrepeat > 1 int icompute = modify->find_compute(idchunk); if (icompute < 0) @@ -308,7 +309,10 @@ FixAveChunk::FixAveChunk(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Fix ave/chunk does not use chunk/atom compute"); if (nrepeat > 1 || ave == RUNNING || ave == WINDOW) cchunk->lockcount++; - if (ave == RUNNING || ave == WINDOW) cchunk->lock(this,update->ntimestep,-1); + if (ave == RUNNING || ave == WINDOW) { + nchunk = cchunk->setup_chunks(); + cchunk->lock(this,update->ntimestep,-1); + } // print file comment lines @@ -533,7 +537,7 @@ void FixAveChunk::end_of_step() modify->addstep_compute(ntimestep+nfreq); } allocate(); - if (nrepeat > 1 && ave == ONE) + if (nrepeat > 1 && ave == ONE) cchunk->lock(this,ntimestep,ntimestep+(nrepeat-1)*nevery); for (m = 0; m < nchunk; m++) { count_many[m] = count_sum[m] = 0.0; diff --git a/src/fix_ave_time.cpp b/src/fix_ave_time.cpp index 0bbaee5af5..b749a19425 100644 --- a/src/fix_ave_time.cpp +++ b/src/fix_ave_time.cpp @@ -274,7 +274,11 @@ FixAveTime::FixAveTime(LAMMPS *lmp, int narg, char **arg) : } // enable locking of row count by this fix for computes of variable length - // only if nrepeat > 1, so that locking spans multiple timesteps + // only if nrepeat > 1 or ave = RUNNING/WINDOW, + // so that locking spans multiple timesteps + // trigger lock_length here for ave = RUN/WINDOW + // or in end_of_step() for nrepeat > 1, + // so that row count = number of chunks is set if (any_variable_length && (nrepeat > 1 || ave == RUNNING || ave == WINDOW)) { @@ -282,8 +286,10 @@ FixAveTime::FixAveTime(LAMMPS *lmp, int narg, char **arg) : if (varlen[i]) { int icompute = modify->find_compute(ids[i]); modify->compute[icompute]->lock_enable(); - if (ave == RUNNING || ave == WINDOW) + if (ave == RUNNING || ave == WINDOW) { + modify->compute[icompute]->lock_length(); modify->compute[icompute]->lock(this,update->ntimestep,-1); + } } }