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