1.. index:: fix hyper/local
2
3fix hyper/local command
4=======================
5
6Syntax
7""""""
8
9.. parsed-literal::
10
11   fix ID group-ID hyper/local cutbond qfactor Vmax Tequil Dcut alpha Btarget
12
13* ID, group-ID are documented in :doc:`fix <fix>` command
14* hyper/local = style name of this fix command
15* cutbond = max distance at which a pair of atoms is considered bonded (distance units)
16* qfactor = max strain at which bias potential goes to 0.0 (unitless)
17* Vmax = estimated height of bias potential (energy units)
18* Tequil = equilibration temperature (temperature units)
19* Dcut = minimum distance between boosted bonds (distance units)
20* alpha = boostostat relaxation time (time units)
21* Btarget = desired time boost factor (unitless)
22* zero or more keyword/value pairs may be appended
23* keyword = *bound* or *reset* or *check/ghost* or *check/bias*
24
25  .. parsed-literal::
26
27       *bound* value = Bfrac
28         Bfrac =  -1 or a value >= 0.0
29       *reset* value = Rfreq
30         Rfreq = -1 or 0 or timestep value > 0
31       *check/ghost* values = none
32       *check/bias* values = Nevery error/warn/ignore
33
34Examples
35""""""""
36
37.. code-block:: LAMMPS
38
39   fix 1 all hyper/local 1.0 0.3 0.8 300.0
40   fix 1 all hyper/local 1.0 0.3 0.8 300.0 bound 0.1 reset 0
41
42Description
43"""""""""""
44
45This fix is meant to be used with the :doc:`hyper <hyper>` command to
46perform a bond-boost local hyperdynamics (LHD) simulation.  The role
47of this fix is to a select multiple pairs of atoms in the system at
48each timestep to add a local bias potential to, which will alter the
49dynamics of the system in a manner that effectively accelerates time.
50This is in contrast to the :doc:`fix hyper/global <fix_hyper_global>`
51command, which can be user to perform a global hyperdynamics (GHD)
52simulation, by adding a global bias potential to a single pair of
53atoms at each timestep.  GHD can time accelerate a small simulation
54with up to a few 100 atoms.  For larger systems, LHD is needed to
55achieve good time acceleration.
56
57For a system that undergoes rare transition events, where one or more
58atoms move over an energy barrier to a new potential energy basin, the
59effect of the bias potential is to induce more rapid transitions.
60This can lead to a dramatic speed-up in the rate at which events
61occurs, without altering their relative frequencies, thus leading to
62an overall increase in the elapsed real time of the simulation as
63compared to running for the same number of timesteps with normal MD.
64See the :doc:`hyper <hyper>` page for a more general discussion of
65hyperdynamics and citations that explain both GHD and LHD.
66
67The equations and logic used by this fix and described here to perform
68LHD follow the description given in :ref:`(Voter2013) <Voter2013lhd>`.  The
69bond-boost form of a bias potential for HD is due to Miron and
70Fichthorn as described in :ref:`(Miron) <Mironlhd>`.
71
72To understand this description, you should first read the description
73of the GHD algorithm on the :doc:`fix hyper/global <fix_hyper_global>`
74doc page.  This description of LHD builds on the GHD description.
75
76The definition of bonds and :math:`E_{ij}` are the same for GHD and LHD.
77The formulas for :math:`V^{max}_{ij}` and :math:`F^{max}_{ij}` are also
78the same except for a pre-factor :math:`C_{ij}`, explained below.
79
80The bias energy :math:`V_{ij}` applied to a bond *ij* with maximum strain is
81
82.. math::
83
84   V^{max}_{ij} = C_{ij} \cdot V^{max} \cdot \left(1 - \left(\frac{E_{ij}}{q}\right)^2\right) \textrm{ for } \left|E_{ij}\right| < qfactor \textrm{ or } 0 \textrm{ otherwise}
85
86The derivative of :math:`V^{max}_{ij}` with respect to the position of
87each atom in the *ij* bond gives a bias force :math:`F^{max}_{ij}` acting
88on the bond as
89
90.. math::
91
92   F^{max}_{ij} = - \frac{dV^{max}_{ij}}{dE_{ij}} = 2 C_{ij} V^{max} \frac{E_{ij}}{qfactor^2} \textrm{ for } \left|E_{ij}\right| < qfactor \textrm{ or } 0 \textrm{ otherwise}
93
94which can be decomposed into an equal and opposite force acting on
95only the two atoms *i* and *j* in the *ij* bond.
96
97The key difference is that in GHD a bias energy and force is added (on
98a particular timestep) to only one bond (pair of atoms) in the system,
99which is the bond with maximum strain :math:`E^{max}`.
100
101In LHD, a bias energy and force can be added to multiple bonds
102separated by the specified *Dcut* distance or more.  A bond *ij* is
103biased if it is the maximum strain bond within its local
104"neighborhood", which is defined as the bond *ij* plus any neighbor
105bonds within a distance *Dcut* from *ij*.  The "distance" between bond
106*ij* and bond *kl* is the minimum distance between any of the *ik*, *il*,
107*jk*, and *jl* pairs of atoms.
108
109For a large system, multiple bonds will typically meet this
110requirement, and thus a bias potential :math:`V^{max}_{ij}` will be
111applied to many bonds on the same timestep.
112
113In LHD, all bonds store a :math:`C_{ij}` prefactor which appears in
114the :math:`V^{max}_{ij}` and :math:`F^{max}_{ij}equations above.  Note
115that the :math:`C_{ij}` factor scales the strength of the bias energy
116and forces whenever bond *ij* is the maximum strain bond in its neighborhood.
117
118:math:`C_{ij}` is initialized to 1.0 when a bond between the *ij* atoms
119is first defined.  The specified *Btarget* factor is then used to adjust the
120:math:`C_{ij}` prefactors for each bond every timestep in the following manner.
121
122An instantaneous boost factor :math:`B_{ij}` is computed each timestep
123for each bond, as
124
125.. math::
126
127   B_{ij} = e^{\beta V^{max}_{kl}}
128
129where :math:`V^{max}_{kl}` is the bias energy of the maxstrain bond *kl*
130within bond *ij*\ 's neighborhood, :math:`\beta = \frac{1}{kT_{equil}}`,
131and :math:`T_{equil}` is the temperature of the system and an argument
132to this fix.
133
134.. note::
135
136   To run an LHD simulation, the input script must also use the
137   :doc:`fix langevin <fix_langevin>` command to thermostat the atoms at
138   the same *Tequil* as specified by this fix, so that the system is
139   running constant-temperature (NVT) dynamics.  LAMMPS does not check
140   that this is done.
141
142Note that if *ij*\ == *kl*, then bond *ij* is a biased bond on that
143timestep, otherwise it is not.  But regardless, the boost factor
144:math:`B_{ij}` can be thought of an estimate of time boost currently
145being applied within a local region centered on bond *ij*.  For LHD,
146we want this to be the specified *Btarget* value everywhere in the
147simulation domain.
148
149To accomplish this, if :math:`B_{ij} < B_{target}`, the :math:`C_{ij}`
150prefactor for bond *ij* is incremented on the current timestep by an
151amount proportional to the inverse of the specified :math:`\alpha` and
152the difference (:math:`B_{ij} - B_{target}`).  Conversely if
153:math:`B_{ij} > B_{target}`, :math:`C_{ij}` is decremented by the same
154amount.  This procedure is termed "boostostatting" in :ref:`(Voter2013)
155<Voter2013lhd>`.  It drives all of the individual :math:`C_{ij}` to
156values such that when :math:`V^{max}_{ij}` is applied as a bias to bond
157*ij*, the resulting boost factor :math:`B_{ij}` will be close to
158:math:`B_{target}` on average.  Thus the LHD time acceleration factor
159for the overall system is effectively *Btarget*\ .
160
161Note that in LHD, the boost factor :math:`B_{target}` is specified by the user.
162This is in contrast to global hyperdynamics (GHD) where the boost
163factor varies each timestep and is computed as a function of :math:`V_{max}`,
164:math:`E_{max}`, and :math:`T_{equil}`; see the
165:doc:`fix hyper/global <fix_hyper_global>` page for details.
166
167----------
168
169Here is additional information on the input parameters for LHD.
170
171Note that the *cutbond*, *qfactor*, and *Tequil* arguments have the
172same meaning as for GHD.  The *Vmax* argument is slightly different.
173The *Dcut*, *alpha*, and *Btarget* parameters are unique to LHD.
174
175The *cutbond* argument is the cutoff distance for defining bonds
176between pairs of nearby atoms.  A pair of I,J atoms in their
177equilibrium, minimum-energy configuration, which are separated by a
178distance :math:`R_{ij} < cutbond`, are flagged as a bonded pair.  Setting
179*cubond* to be ~25% larger than the nearest-neighbor distance in a
180crystalline lattice is a typical choice for solids, so that bonds
181exist only between nearest neighbor pairs.
182
183The *qfactor* argument is the limiting strain at which the bias
184potential goes to 0.0.  It is dimensionless, so a value of 0.3 means a
185bond distance can be up to 30% larger or 30% smaller than the
186equilibrium (quenched) :math:`R^0_{ij}` distance and the two atoms in the bond
187could still experience a non-zero bias force.
188
189If *qfactor* is set too large, then transitions from one energy basin
190to another are affected because the bias potential is non-zero at the
191transition state (e.g. saddle point).  If *qfactor* is set too small
192than little boost can be achieved because the :math:`E_{ij}` strain of
193some bond in
194the system will (nearly) always exceed *qfactor*\ .  A value of 0.3 for
195*qfactor* is typically a reasonable value.
196
197The *Vmax* argument is a fixed prefactor on the bias potential.  There
198is a also a dynamic prefactor :math:`C_{ij}`, driven by the choice of
199*Btarget* as discussed above.  The product of these should be a value less than
200the smallest barrier height for an event to occur.  Otherwise the
201applied bias potential may be large enough (when added to the
202interatomic potential) to produce a local energy basin with a maxima
203in the center.  This can produce artificial energy minima in the same
204basin that trap an atom.  Or if :math:`C_{ij} \cdot V^{max}` is even
205larger, it may
206induce an atom(s) to rapidly transition to another energy basin.  Both
207cases are "bad dynamics" which violate the assumptions of LHD that
208guarantee an accelerated time-accurate trajectory of the system.
209
210.. note::
211
212   It may seem that :math:`V^{max}` can be set to any value, and
213   :math:`C_{ij}` will compensate to reduce the overall prefactor
214   if necessary.  However the :math:`C_{ij}` are initialized to 1.0
215   and the boostostatting procedure typically operates slowly enough
216   that there can be a time period of bad dynamics if :math:`V^{max}`
217   is set too large.  A better strategy is to set :math:`V^{max}` to the
218   slightly smaller than the lowest barrier height for an event (the same
219   as for GHD), so that the :math:`C_{ij}` remain near unity.
220
221The *Tequil* argument is the temperature at which the system is
222simulated; see the comment above about the :doc:`fix langevin <fix_langevin>` thermostatting.  It is also part of the
223beta term in the exponential factor that determines how much boost is
224achieved as a function of the bias potential.  See the discussion of
225the *Btarget* argument below.
226
227As discussed above, the *Dcut* argument is the distance required
228between two locally maxstrain bonds for them to both be selected as
229biased bonds on the same timestep.  Computationally, the larger *Dcut*
230is, the more work (computation and communication) must be done each
231timestep within the LHD algorithm.  And the fewer bonds can be
232simultaneously biased, which may mean the specified *Btarget* time
233acceleration cannot be achieved.
234
235Physically *Dcut* should be a long enough distance that biasing two
236pairs of atoms that close together will not influence the dynamics of
237each pair.  E.g. something like 2x the cutoff of the interatomic
238potential.  In practice a *Dcut* value of ~10 Angstroms seems to work
239well for many solid-state systems.
240
241.. note::
242
243   You should insure that ghost atom communication is performed for
244   a distance of at least *Dcut* + *cutevent* = the distance one or more
245   atoms move (between quenched states) to be considered an "event".  It
246   is an argument to the "compute event/displace" command used to detect
247   events.  By default the ghost communication distance is set by the
248   pair_style cutoff, which will typically be < *Dcut*\ .  The :doc:`comm_modify cutoff <comm_modify>` command should be used to override the ghost
249   cutoff explicitly, e.g.
250
251.. code-block:: LAMMPS
252
253   comm_modify cutoff 12.0
254
255Note that this fix does not know the *cutevent* parameter, but uses
256half the *cutbond* parameter as an estimate to warn if the ghost
257cutoff is not long enough.
258
259As described above the *alpha* argument is a pre-factor in the
260boostostat update equation for each bond's :math:`C_{ij}` prefactor.
261*Alpha* is specified in time units, similar to other thermostat or barostat
262damping parameters.  It is roughly the physical time it will take the
263boostostat to adjust a :math:`C_{ij}` value from a too high (or too low)
264value to a correct one.  An *alpha* setting of a few ps is typically good for
265solid-state systems.  Note that the *alpha* argument here is the
266inverse of the alpha parameter discussed in
267:ref:`(Voter2013) <Voter2013lhd>`.
268
269The *Btarget* argument is the desired time boost factor (a value > 1)
270that all the atoms in the system will experience.  The elapsed time
271t_hyper for an LHD simulation running for *N* timesteps is simply
272
273.. math::
274
275   t_{hyper} = B_{target} \cdot N \cdot dt
276
277where *dt* is the timestep size defined by the :doc:`timestep <timestep>`
278command.  The effective time acceleration due to LHD is thus
279:math:`\frac{t_{hyper}}{N\cdot dt} = B_{target}`, where :math:`N\cdot dt`
280is the elapsed time for a normal MD run of N timesteps.
281
282You cannot choose an arbitrarily large setting for *Btarget*\ .  The
283maximum value you should choose is
284
285.. math::
286
287   B_{target} = e^{\beta V_{small}}
288
289where :math:`V_{small}` is the smallest event barrier height in your
290system, :math:`\beta = \frac{1}{kT_{equil}}`, and :math:`T_{equil}`
291is the specified temperature of the system
292(both by this fix and the Langevin thermostat).
293
294Note that if *Btarget* is set smaller than this, the LHD simulation
295will run correctly.  There will just be fewer events because the hyper
296time (t_hyper equation above) will be shorter.
297
298.. note::
299
300   If you have no physical intuition as to the smallest barrier
301   height in your system, a reasonable strategy to determine the largest
302   *Btarget* you can use for an LHD model, is to run a sequence of
303   simulations with smaller and smaller *Btarget* values, until the event
304   rate does not change (as a function of hyper time).
305
306----------
307
308Here is additional information on the optional keywords for this fix.
309
310The *bound* keyword turns on min/max bounds for bias coefficients
311:math:`C_{ij}` for all bonds.  :math:`C_{ij}` is a prefactor for each bond on
312the bias potential of maximum strength :math:`V^{max}`.  Depending on the
313choice of *alpha* and *Btarget* and *Vmax*, the boostostatting can cause
314individual :math:`C_{ij}` values to fluctuate.  If the fluctuations are too
315large :math:`C_{ij} \cdot V^{max}` can exceed low barrier heights and induce
316bad event dynamics.  Bounding the :math:`C_{ij}` values is a way to prevent
317this.  If *Bfrac* is set to -1 or any negative value (the default) then no
318bounds are enforced on :math:`C_{ij}` values (except they must always
319be >= 0.0).  A *Bfrac* setting >= 0.0
320sets a lower bound of 1.0 - Bfrac and upper bound of 1.0 + Bfrac on each
321:math:`C_{ij}` value.  Note that all :math:`C_{ij}` values are initialized
322to 1.0 when a bond is created for the first time.  Thus *Bfrac* limits the
323bias potential height to *Vmax* +/- *Bfrac*\ \*\ *Vmax*\ .
324
325The *reset* keyword allow *Vmax* to be adjusted dynamically depending on the
326average value of all :math:`C_{ij}` prefactors.  This can be useful if you
327are unsure what value of *Vmax* will match the *Btarget* boost for the
328system.  The :math:`C_{ij}` values will then adjust in aggregate (up or down)
329so that :math:`C_{ij} \cdot V^{max}` produces a boost of *Btarget*, but this
330may conflict with the *bound* keyword settings.  By using *bound* and *reset*
331together, :math:`V^{max}` itself can be reset, and desired bounds still applied
332to the :math:`C_{ij}` values.
333
334A setting for *Rfreq* of -1 (the default) means *Vmax* never changes.
335A setting of 0 means :math:`V^{max}` is adjusted every time an event occurs and
336bond pairs are recalculated.  A setting of N > 0 timesteps means
337:math:`V^{max}` is adjusted on the first time an event occurs on a timestep >=
338N steps after the previous adjustment.  The adjustment to :math:`V^{max}` is
339computed as follows.  The current average of all :math:`C_{ij} \cdot V^{max}`
340values is computed and the :math:`V^{max}` is reset to that value.  All
341:math:`C_{ij}` values are changed to new prefactors such the new
342:math:`C_{ij} \cdot V^{max}` is the same as it was previously.  If the
343*bound* keyword was used, those bounds are enforced on the new :math:`C_{ij}`
344values.  Henceforth, new bonds are assigned a :math:`C_{ij} = 1.0`, which
345means their bias potential magnitude is the new :math:`V^{max}`.
346
347The *check/ghost* keyword turns on extra computation each timestep to
348compute statistics about ghost atoms used to determine which bonds to
349bias.  The output of these stats are the vector values 14 and 15,
350described below.  If this keyword is not enabled, the output
351of the stats will be zero.
352
353The *check/bias* keyword turns on extra computation and communication
354to check if any biased bonds are closer than *Dcut* to each other,
355which should not be the case if LHD is operating correctly.  Thus it
356is a debugging check.  The *Nevery* setting determines how often the
357check is made.  The *error*, *warn*, or *ignore* setting determines
358what is done if the count of too-close bonds is not zero.  Either the
359code will exit, or issue a warning, or silently tally the count.  The
360count can be output as vector value 17, as described below.  If this
361keyword is not enabled, the output of that statistic will be 0.
362
363Note that both of these computations are costly, hence they are only
364enabled by these keywords.
365
366----------
367
368Restart, fix_modify, output, run start/stop, minimize info
369"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
370
371No information about this fix is written to :doc:`binary restart files <restart>`.
372
373The :doc:`fix_modify <fix_modify>` *energy* option is supported by
374this fix to add the energy of the bias potential to the global
375potential energy of the system as part of :doc:`thermodynamic output
376<thermo_style>`.  The default setting for this fix is :doc:`fix_modify
377energy no <fix_modify>`.
378
379This fix computes a global scalar and global vector of length 28,
380which can be accessed by various :doc:`output commands
381<Howto_output>`.  The scalar is the magnitude of the bias potential
382(energy units) applied on the current timestep, summed over all biased
383bonds.  The vector stores the following quantities:
384
385* 1 = average boost for all bonds on this step (unitless)
386* 2 = # of biased bonds on this step
387* 3 = max strain :math:`E_{ij}` of any bond on this step (absolute value, unitless)
388* 4 = value of :math:`V^{max}` on this step (energy units)
389* 5 = average bias coeff for all bonds on this step (unitless)
390* 6 = min bias coeff for all bonds on this step (unitless)
391* 7 = max bias coeff for all bonds on this step (unitless)
392* 8 = average # of bonds/atom on this step
393* 9 = average neighbor bonds/bond on this step within *Dcut*
394
395* 10 = average boost for all bonds during this run (unitless)
396* 11 = average # of biased bonds/step during this run
397* 12 = fraction of biased bonds with no bias during this run
398* 13 = fraction of biased bonds with negative strain during this run
399* 14 = max bond length during this run (distance units)
400* 15 = average bias coeff for all bonds during this run (unitless)
401* 16 = min bias coeff for any bond during this run (unitless)
402* 17 = max bias coeff for any bond during this run (unitless)
403
404* 18 = max drift distance of any bond atom during this run (distance units)
405* 19 = max distance from proc subbox of any ghost atom with maxstrain < qfactor during this run (distance units)
406* 20 = max distance outside my box of any ghost atom with any maxstrain during this run (distance units)
407* 21 = count of ghost atoms that could not be found on reneighbor steps during this run
408* 22 = count of bias overlaps (< Dcut) found during this run
409
410* 23 = cumulative hyper time since fix created (time units)
411* 24 = cumulative count of event timesteps since fix created
412* 25 = cumulative count of atoms in events since fix created
413* 26 = cumulative # of new bonds formed since fix created
414
41527 = average boost for biased bonds on this step (unitless)
41628 = # of bonds with absolute strain >= q on this step
417
418The first quantities 1-9 are for the current timestep.  Quantities
41910-22 are for the current hyper run.  They are reset each time a new
420hyper run is performed.  Quantities 23-26 are cumulative across
421multiple runs (since the point in the input script the fix was
422defined).
423
424For value 10, each bond instantaneous boost factor is given by the
425equation for :math:`B_{ij}` above.  The total system boost (average across all
426bonds) fluctuates, but should average to a value close to the
427specified :math:`B_{target}`.
428
429For value 12, the numerator is a count of all biased bonds on each
430timestep whose bias energy = 0.0 due to :math:`E_{ij} >= qfactor`.  The
431denominator is the count of all biased bonds on all timesteps.
432
433For value 13, the numerator is a count of all biased bonds on each
434timestep with negative strain.  The denominator is the count of all
435biased bonds on all timesteps.
436
437Values 18-22 are mostly useful for debugging and diagnostic purposes.
438
439For value 18, drift is the distance an atom moves between two quenched
440states when the second quench determines an event has occurred.  Atoms
441involved in an event will typically move the greatest distance since
442others typically remain near their original quenched position.
443
444For values 19-21, neighbor atoms in the full neighbor list with cutoff
445*Dcut* may be ghost atoms outside a processor's sub-box.  Before the
446next event occurs they may move further than *Dcut* away from the
447sub-box boundary.  Value 19 is the furthest (from the sub-box) any
448ghost atom in the neighbor list with maxstrain < *qfactor* was
449accessed during the run.  Value 20 is the same except that the ghost
450atom's maxstrain may be >= *qfactor*, which may mean it is about to
451participate in an event.  Value 21 is a count of how many ghost atoms
452could not be found on reneighbor steps, presumably because they moved
453too far away due to their participation in an event (which will likely
454be detected at the next quench).
455
456Typical values for 19 and 20 should be slightly larger than *Dcut*,
457which accounts for ghost atoms initially at a *Dcut* distance moving
458thermally before the next event takes place.
459
460Note that for values 19 and 20 to be computed, the optional keyword
461*check/ghost* must be specified.  Otherwise these values will be zero.
462This is because computing them incurs overhead, so the values are only
463computed if requested.
464
465Value 21 should be zero or small.  As explained above a small count
466likely means some ghost atoms were participating in their own events
467and moved a longer distance.  If the value is large, it likely means
468the communication cutoff for ghosts is too close to *Dcut* leading to
469many not-found ghost atoms before the next event.  This may lead to a
470reduced number of bonds being selected for biasing, since the code
471assumes those atoms are part of highly strained bonds.  As explained
472above, the :doc:`comm_modify cutoff <comm_modify>` command can be used
473to set a longer cutoff.
474
475For value 22, no two bonds should be biased if they are within a
476*Dcut* distance of each other.  This value should be zero, indicating
477that no pair of biased bonds are closer than *Dcut* from each other.
478
479Note that for value 22 to be computed, the optional keyword
480*check/bias* must be specified and it determines how often this check
481is performed.  This is because performing the check incurs overhead,
482so if only computed as often as requested.
483
484The result at the end of the run is the cumulative total from every
485timestep the check was made.  Note that the value is a count of atoms
486in bonds which found other atoms in bonds too close, so it is almost
487always an over-count of the number of too-close bonds.
488
489Value 23 is simply the specified *boost* factor times the number of
490timesteps times the timestep size.
491
492For value 24, events are checked for by the :doc:`hyper <hyper>` command
493once every *Nevent* timesteps.  This value is the count of those
494timesteps on which one (or more) events was detected.  It is NOT the
495number of distinct events, since more than one event may occur in the
496same *Nevent* time window.
497
498For value 25, each time the :doc:`hyper <hyper>` command checks for an
499event, it invokes a compute to flag zero or more atoms as
500participating in one or more events.  E.g. atoms that have displaced
501more than some distance from the previous quench state.  Value 25 is
502the cumulative count of the number of atoms participating in any of
503the events that were found.
504
505Value 26 tallies the number of new bonds created by the bond reset
506operation.  Bonds between a specific I,J pair of atoms may persist for
507the entire hyperdynamics simulation if neither I or J are involved in
508an event.
509
510Value 27 computes the average boost for biased bonds only on this step.
511
512Value 28 is the count of bonds with an absolute value of strain >= q
513on this step.
514
515The scalar value is an "extensive" quantity since it grows with the
516system size; the vector values are all "intensive".
517
518This fix also computes a local vector of length the number of bonds
519currently in the system.  The value for each bond is its :math:`C_{ij}`
520prefactor (bias coefficient).  These values can be can be accessed by various
521:doc:`output commands <Howto_output>`.  A particularly useful one is the
522:doc:`fix ave/histo <fix_ave_histo>` command which can be used to
523histogram the Cij values to see if they are distributed reasonably
524close to 1.0, which indicates a good choice of :math:`V^{max}`.
525
526The local values calculated by this fix are unitless.
527
528No parameter of this fix can be used with the *start/stop* keywords of
529the :doc:`run <run>` command.  This fix is not invoked during
530:doc:`energy minimization <minimize>`.
531
532Restrictions
533""""""""""""
534
535This fix is part of the REPLICA package.  It is only enabled if LAMMPS
536was built with that package.  See the :doc:`Build package <Build_package>`
537doc page for more info.
538
539Related commands
540""""""""""""""""
541
542:doc:`hyper <hyper>`, :doc:`fix hyper/global <fix_hyper_global>`
543
544Default
545"""""""
546
547The default settings for optimal keywords are bounds = -1 and reset =
548-1.  The check/ghost and check/bias keywords are not enabled by
549default.
550
551----------
552
553.. _Voter2013lhd:
554
555**(Voter2013)** S. Y. Kim, D. Perez, A. F. Voter, J Chem Phys, 139,
556144110 (2013).
557
558.. _Mironlhd:
559
560**(Miron)** R. A. Miron and K. A. Fichthorn, J Chem Phys, 119, 6210 (2003).
561