From 07e58fd681842227d0e37fa53176a7f649298e11 Mon Sep 17 00:00:00 2001 From: Steve Plimpton Date: Tue, 14 Jan 2020 10:36:19 -0700 Subject: [PATCH] document latest fix hyper/local diagnostics --- doc/src/fix_hyper_local.txt | 14 +++++++++++--- src/REPLICA/fix_hyper_local.cpp | 14 ++++++-------- src/REPLICA/fix_hyper_local.h | 2 +- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/doc/src/fix_hyper_local.txt b/doc/src/fix_hyper_local.txt index 49b20f7719..7c2e140276 100644 --- a/doc/src/fix_hyper_local.txt +++ b/doc/src/fix_hyper_local.txt @@ -345,7 +345,7 @@ The "fix_modify"_fix_modify.html {energy} option is supported by this fix to add the energy of the bias potential to the system's potential energy as part of "thermodynamic output"_thermo_style.html. -This fix computes a global scalar and global vector of length 26, +This fix computes a global scalar and global vector of length 28, which can be accessed by various "output commands"_Howto_output.html. The scalar is the magnitude of the bias potential (energy units) applied on the current timestep, summed over all biased bonds. The @@ -368,19 +368,22 @@ vector stores the following quantities: 14 = max bond length during this run (distance units) 15 = average bias coeff for all bonds during this run (unitless) 16 = min bias coeff for any bond during this run (unitless) -17 = max bias coeff for any bond during this run (unitless) +17 = max bias coeff for any bond during this run (unitless) :ul 18 = max drift distance of any bond atom during this run (distance units) 19 = max distance from proc subbox of any ghost atom with maxstrain < qfactor during this run (distance units) 20 = max distance outside my box of any ghost atom with any maxstrain during this run (distance units) 21 = count of ghost atoms that could not be found on reneighbor steps during this run -22 = count of bias overlaps (< Dcut) found during this run +22 = count of bias overlaps (< Dcut) found during this run :ul 23 = cumulative hyper time since fix created (time units) 24 = cumulative count of event timesteps since fix created 25 = cumulative count of atoms in events since fix created 26 = cumulative # of new bonds formed since fix created :ul +27 = average boost for biased bonds on this step (unitless) +28 = # of bonds with absolute strain >= q on this step + The first quantities 1-9 are for the current timestep. Quantities 10-22 are for the current hyper run. They are reset each time a new hyper run is performed. Quantities 23-26 are cumulative across @@ -473,6 +476,11 @@ operation. Bonds between a specific I,J pair of atoms may persist for the entire hyperdynamics simulation if neither I or J are involved in an event. +Value 27 computes the average boost for biased bonds only on this step. + +Value 28 is the count of bonds with an absolute value of strain >= q +on this step. + The scalar and vector values calculated by this fix are all "intensive". diff --git a/src/REPLICA/fix_hyper_local.cpp b/src/REPLICA/fix_hyper_local.cpp index a7d99f8755..699e6845d0 100644 --- a/src/REPLICA/fix_hyper_local.cpp +++ b/src/REPLICA/fix_hyper_local.cpp @@ -63,7 +63,6 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) : hyperflag = 2; scalar_flag = 1; vector_flag = 1; - // DEBUG - changed 26 to 28 size_vector = 28; local_flag = 1; size_local_rows = 0; @@ -196,7 +195,6 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) : bound_upper = 1.0 + boundfrac; lastreset = update->ntimestep; - // DEBUG - one line overcount = 0; } @@ -485,7 +483,6 @@ void FixHyperLocal::pre_reverse(int /* eflag */, int /* vflag */) double **x = atom->x; - // DEBUG - one line overcount = 0; m = 0; @@ -506,7 +503,7 @@ void FixHyperLocal::pre_reverse(int /* eflag */, int /* vflag */) maxbondlen = MAX(r,maxbondlen); r0 = blist[m].r0; estrain = fabs(r-r0) / r0; - // DEBUG - one line + // DEBUG quantity - could remove this line and output option if (estrain >= qfactor) overcount++; maxstrain[i] = MAX(maxstrain[i],estrain); maxstrain[j] = MAX(maxstrain[j],estrain); @@ -739,6 +736,7 @@ void FixHyperLocal::pre_reverse(int /* eflag */, int /* vflag */) // delta in boost coeff is function of boost_domain vs target boost // boost_domain is function of two maxstrain_domains for I,J // NOTE: biascoeff update is now scaled by 1/Vmax + // still need to think about what this means for units minbiascoeff = BIG; maxbiascoeff = 0.0; @@ -1466,8 +1464,7 @@ double FixHyperLocal::compute_scalar() double FixHyperLocal::compute_vector(int i) { - // 26 vector outputs returned for i = 0-25 - // DEBUG = 28 + // 28 vector outputs returned for i = 0-27 // i = 0 = average boost for all bonds on this step // i = 1 = # of biased bonds on this step @@ -1502,7 +1499,8 @@ double FixHyperLocal::compute_vector(int i) // i = 24 = cumulative # of atoms in events since fix created // i = 25 = cumulative # of new bonds formed since fix created - // i = 26 = average boost for biased bonds on this step (unitless) + // these 2 were added for debugging - could be removed at some point + // i = 26 = average boost for biased bonds on this step // i = 27 = current count of bonds with strain >= q if (i == 0) { @@ -1658,7 +1656,7 @@ double FixHyperLocal::compute_vector(int i) return (double) allnewbond; } - // DEBUG - added two options + // these two options were added for debugging if (i == 26) { double allboost; diff --git a/src/REPLICA/fix_hyper_local.h b/src/REPLICA/fix_hyper_local.h index a6b6bb96cc..831a39529f 100644 --- a/src/REPLICA/fix_hyper_local.h +++ b/src/REPLICA/fix_hyper_local.h @@ -140,7 +140,7 @@ class FixHyperLocal : public FixHyper { }; OneBond *blist; // list of owned bonds - double *biascoeff; // biasing coefficient Cij for each bond + double *biascoeff; // bias coefficient Cij for each bond int nblocal; // # of owned bonds int maxbond; // allocated size of blist