document latest fix hyper/local diagnostics

This commit is contained in:
Steve Plimpton 2020-01-14 10:36:19 -07:00
parent f16486b23e
commit 07e58fd681
3 changed files with 18 additions and 12 deletions

View File

@ -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 fix to add the energy of the bias potential to the system's potential
energy as part of "thermodynamic output"_thermo_style.html. 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. which can be accessed by various "output commands"_Howto_output.html.
The scalar is the magnitude of the bias potential (energy units) The scalar is the magnitude of the bias potential (energy units)
applied on the current timestep, summed over all biased bonds. The 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) 14 = max bond length during this run (distance units)
15 = average bias coeff for all bonds during this run (unitless) 15 = average bias coeff for all bonds during this run (unitless)
16 = min bias coeff for any bond 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) 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) 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) 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 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) 23 = cumulative hyper time since fix created (time units)
24 = cumulative count of event timesteps since fix created 24 = cumulative count of event timesteps since fix created
25 = cumulative count of atoms in events since fix created 25 = cumulative count of atoms in events since fix created
26 = cumulative # of new bonds formed since fix created :ul 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 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 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 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 the entire hyperdynamics simulation if neither I or J are involved in
an event. 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 The scalar and vector values calculated by this fix are all
"intensive". "intensive".

View File

@ -63,7 +63,6 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) :
hyperflag = 2; hyperflag = 2;
scalar_flag = 1; scalar_flag = 1;
vector_flag = 1; vector_flag = 1;
// DEBUG - changed 26 to 28
size_vector = 28; size_vector = 28;
local_flag = 1; local_flag = 1;
size_local_rows = 0; size_local_rows = 0;
@ -196,7 +195,6 @@ FixHyperLocal::FixHyperLocal(LAMMPS *lmp, int narg, char **arg) :
bound_upper = 1.0 + boundfrac; bound_upper = 1.0 + boundfrac;
lastreset = update->ntimestep; lastreset = update->ntimestep;
// DEBUG - one line
overcount = 0; overcount = 0;
} }
@ -485,7 +483,6 @@ void FixHyperLocal::pre_reverse(int /* eflag */, int /* vflag */)
double **x = atom->x; double **x = atom->x;
// DEBUG - one line
overcount = 0; overcount = 0;
m = 0; m = 0;
@ -506,7 +503,7 @@ void FixHyperLocal::pre_reverse(int /* eflag */, int /* vflag */)
maxbondlen = MAX(r,maxbondlen); maxbondlen = MAX(r,maxbondlen);
r0 = blist[m].r0; r0 = blist[m].r0;
estrain = fabs(r-r0) / r0; estrain = fabs(r-r0) / r0;
// DEBUG - one line // DEBUG quantity - could remove this line and output option
if (estrain >= qfactor) overcount++; if (estrain >= qfactor) overcount++;
maxstrain[i] = MAX(maxstrain[i],estrain); maxstrain[i] = MAX(maxstrain[i],estrain);
maxstrain[j] = MAX(maxstrain[j],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 // delta in boost coeff is function of boost_domain vs target boost
// boost_domain is function of two maxstrain_domains for I,J // boost_domain is function of two maxstrain_domains for I,J
// NOTE: biascoeff update is now scaled by 1/Vmax // NOTE: biascoeff update is now scaled by 1/Vmax
// still need to think about what this means for units
minbiascoeff = BIG; minbiascoeff = BIG;
maxbiascoeff = 0.0; maxbiascoeff = 0.0;
@ -1466,8 +1464,7 @@ double FixHyperLocal::compute_scalar()
double FixHyperLocal::compute_vector(int i) double FixHyperLocal::compute_vector(int i)
{ {
// 26 vector outputs returned for i = 0-25 // 28 vector outputs returned for i = 0-27
// DEBUG = 28
// i = 0 = average boost for all bonds on this step // i = 0 = average boost for all bonds on this step
// i = 1 = # of biased 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 = 24 = cumulative # of atoms in events since fix created
// i = 25 = cumulative # of new bonds formed 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 // i = 27 = current count of bonds with strain >= q
if (i == 0) { if (i == 0) {
@ -1658,7 +1656,7 @@ double FixHyperLocal::compute_vector(int i)
return (double) allnewbond; return (double) allnewbond;
} }
// DEBUG - added two options // these two options were added for debugging
if (i == 26) { if (i == 26) {
double allboost; double allboost;

View File

@ -140,7 +140,7 @@ class FixHyperLocal : public FixHyper {
}; };
OneBond *blist; // list of owned bonds 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 nblocal; // # of owned bonds
int maxbond; // allocated size of blist int maxbond; // allocated size of blist